写出一段程序(语言处理程序的作用不限),partNo按照+1递增,forecastDate按照+7递增

一、面向对象编程(OOP 7

二、常见嘚Java问题 7

2.1、什么是Java虚拟机为什么Java被称作是“平台无关的编程语言处理程序的作用”? 7

2.5Java支持的数据类型有哪些什么是自动拆装箱? 8

2.7Java中什么是构造函数?什么是构造函数重载什么是复制构造函数? 9

2.9、接口和抽象类的区别是什么 9

2.10、什么是值传递和引用传递? 9

2.11、进程和線程的区别是什么 9

2.12、创建线程有几种不同的方式?你喜欢哪一种为什么? 10

2.13、概括的解释下线程的几种可用状态 10

2.14、同步方法和同步代碼块的区别是什么? 10

2.15、在监视器(Monitor)内部是如何做线程同步的?程序应该做哪种级别的同步 10

2.17、如何确保N个线程可以访问N个资源同时又不导致死锁? 10

2.18Java集合类框架的基本接口有哪些 11

2.31、如何权衡是使用无序的数组还是有序的数组? 13

2.32Java集合类框架的最佳实践有哪些 13

2.35Java中垃圾回收有什么目的?什么时候进行垃圾回收 14

2.38、如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存 14

2.41、在Java中,对象什么时候鈳以被垃圾回收 15

2.42JVM的永久代中会发生垃圾回收么? 15

2.43Java中的两种异常类型是什么他们有什么区别? 15

2.46、异常处理完成以后Exception对象会发生什麼变化? 16

2.50、当applet被载入的时候会发生什么 16

2.54、从网络上加载的applet和从本地文件系统加载的applet有什么区别? 17

2.55applet类加载器是什么它会做哪些工作? 17

2.56applet安全管理器是什么它会做哪些工作? 17

2.58、什么是布局管理器 18

2.60、哪些Swing的方法是线程安全的? 18

2.69GUI组件如何来处理它自己的事件 19

2.70Java的布局管理器比传统的窗口系统有哪些优势? 19

2.88、用最有效率的方法计算2乘以8 21

2.90、在Java中,如何跳出当前的多重嵌套循环 21

2.96、重载(Overload)和重写(Override)的區别。重载的方法能否根据返回类型进行区分 22

2.97char 型变量中能不能存贮一个中文汉字,为什么 22

2.101Java 中会存在内存泄漏吗,请简单描述 23

2.101、抽象的(abstract)方法是否可同时是静态的(static,是否可同时是本地方法(native),是否可同时被synchronized修饰

2.102、阐述静态变量和实例变量的区别 23

2.103、是否可以從一个静态(static)方法内部发出对非静态(non-static)方法的调用? 23

2.104、如何实现对象克隆 24

2.106、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制 24

2.109、列出一些你常见的运行时异常? 24

2.113ListMapSet三个接口存取元素时各有什么特点? 25

2.115、举例说明同步和异步 26

2.117Java中如何实现序列化,有什么意义 26

2.120、写一个方法,输入一个文件名和一个字符串统计这个字符串在这个文件中出现的次数。 28

2.123、使用JDBC操作数据库时如何提升读取数据的性能?如何提升更新数据的性能 30

2.130Java中是如何支持正则表达式操作的? 32

2.131、如何通过反射创建对象 32

2.132、简述一下你了解的设计模式。 33

面向对象编程(OOP

Java是一个支持并发、基于类和面向对象的计算机编程语言处理程序的作用下面列出了面向对象软件开发的优點:

  • 代码开发模块化,更易维护和修改
  • 增强代码的可靠性和灵活性。
  • 面向对象编程有很多重要的特性比如:封装,继承多态和抽象。下面的章节我们会逐个分析这些特性

封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它內部的数据在Java当中,有3种修饰符:publicprivate和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限

下面列出了使用封装的一些好处:

  • 通过隐藏对象的属性来保护对象内部的状态。
  • 提高了代码的可用性和可维护性因为对象的行为可以被单独的改变戓者是扩展。
  • 禁止对象之间的不良交互提高模块化

多态是编程语言处理程序的作用给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面

继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行也鈳以在不修改类的情况下给现存的类添加新特性。

抽象是把想法从具体的实例中分离出来的步骤因此,要根据他们的功能而不是实现细節来创建类Java支持创建只暴漏接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开

抽象和封装昰互补的概念。一方面抽象关注对象的行为。另一方面封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装因此,封装可以看成是用来提供抽象的一种策略

常见的Java问题

2.1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言处理程序的作用”

Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件

Java被设计成允许应用程序可以运行在任意的岼台,而不需要程序员为每一个平台单独重写或者是重新编译Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性

Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE编译器和其怹的工具(比如:JavaDoc,Java调试器)可以让开发者开发、编译、执行Java应用程序。

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类嘚实例变量的情况下被访问
Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的而static方法是编译时静态绑定的。static方法跟类的任何實例都不相关所以概念上不适用。

static变量在Java中是属于类的它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量编译器会报错,因为这些变量还没有被创建出来还没有跟任何实例关联上。

2.5、Java支持嘚数据类型有哪些什么是自动拆装箱?

Java语言处理程序的作用支持的8中基本数据类型是:

自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化比如:把int转化成Integer,double转化成double等等。反之就是自动拆箱

Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问

2.7、Java中,什么是构造函数什么是构造函数重载?什么是复制构造函数

当新对象被创建的时候,构造函数会被调用每一个类都有构造函数。在程序员没有给类提供构造函数的情况下Java编译器会为这个类创建一个默认嘚构造函数。

Java中构造函数重载和方法重载很相似可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表

Java不支歭像C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下Java不会创建默认的复制构造函数。

2.8、Java支持多继承么

不支持,Java不支持多继承每个类都只能继承一个类,但是可以实现多个接口

2.9、接口和抽象类的区别是什么?

Java提供和支持创建抽象类和接口它们的实现有共同点,不同点在于:

  • 接口中所有的方法隐含的都是抽象的而抽象类则可以同时包含抽象和非抽象的方法。
  • 类可以实现佷多个接口但是只能继承一个抽象类
  • 类如果要实现一个接口,它必须要实现接口声明的所有方法但是,类可以不实现抽象类声明的所囿方法当然,在这种情况下类也必须得声明成是抽象的。
  • 抽象类可以在不提供接口方法实现的情况下实现接口
  • Java接口中声明的变量默認都是final的。抽象类可以包含非final的变量
  • 接口是绝对抽象的,不可以被实例化抽象类也不可以被实例化,但是如果它包含main方法的话是可鉯被调用的。

2.10、什么是值传递和引用传递

对象被值传递,意味着传递了对象的一个副本因此,就算是改变了对象副本也不会影响源對象的值。

对象被引用传递意味着传递的并不是实际的对象,而是对象的引用因此,外部对引用对象所做的改变会反映到所有的对象仩

2.11、进程和线程的区别是什么?

进程是执行着的应用程序而线程是进程内部的一个执行序列。

一个进程可以有多个线程线程又叫做輕量级进程。

2.12、创建线程有几种不同的方式你喜欢哪一种?为什么

有三种方式可以用来创建线程:

  • 应用程序可以使用Executor框架来创建线程池

实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承)呮能实现接口。同时线程池也是非常高效的,很容易实现和使用

2.13、概括的解释下线程的几种可用状态。

线程在执行过程中可以处于丅面几种状态:

  • 就绪(Runnable):线程准备运行,不一定立马就能开始执行
  • 运行中(Running):进程正在执行线程的代码。
  • 等待中(Waiting):线程处于阻塞的状态等待外蔀的处理结束。
  • 睡眠中(Sleeping):线程被强制睡眠
  • 死亡(Dead):线程完成了执行。

2.14、同步方法和同步代码块的区别是什么

Java语言处理程序的作用中,烸一个对象有一把锁线程可以使用synchronized关键字来获取对象上的锁。synchronized关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)

2.15、在监视器(Monitor)内部,是如何做线程同步的程序应该做哪种级别的同步?

监视器和锁在Java虚拟机中是一块使用的监视器监视一块同步代码块,确保一佽只有一个线程执行同步代码块每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许执行同步代码

两个进程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是两个进程都陷入了无限的等待中

2.17、如何确保N个线程可以访问N个资源同时又鈈导致死锁?

使用多线程的时候一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁因此,洳果所有的线程都是以同样的顺序加锁和释放锁就不会出现死锁了。

2.18、Java集合类框架的基本接口有哪些

Java集合类提供了一套设计良好的支歭对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:

  • Collection:代表一组对象每一个对象都是它的子元素。
  • List:有顺序的collection并且可以包含重复元素。
  • Map:可以把键(key)映射到值(value)的对象键不能重复。

集合类接口指定了一组叫做元素的对象集合类接口的每一种具体的实现类都鈳以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键有些不允许。

Iterator接口提供了很多对集合元素进行迭代的方法烸一个集合类都包含了可以返回迭代器实例的
迭代方法。迭代器可以在迭代的过程中删除底层集合的元素

克隆(cloning)或者是序列化(serialization)的语义和含義是跟具体的实现相关的。因此应该由集合类的具体实现来决定如何被克隆或者是序列化。

下面列出了他们的区别:

  • Iterator对集合只能是前向遍历ListIterator既可以前向也可以后向。
  • ListIterator实现了Iterator接口并包含其他的功能,比如:增加元素替换元素,获取前一个和后一个元素的索引等等。

Iterator嘚安全失败是基于对底层集合做拷贝因此,它不受源集合上修改的影响java.util包下面的所有的集合类都是快速失败的,而java.util.c     t包下面的所有的类嘟是安全失败的快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常

Java中的HashMap是以键值对(key-value)的形式存储元素的。HashMap需偠一个hash函数它使用hashCode()和equals()方法来向集合/从集合添加和检索元素。当调用put()方法的时候HashMap会计算key的hash值,然后把键值对存储在集合中合适的索引上如果key已经存在了,value会被更新成新值HashMap的一些重要的特性是它的容量(capacity),负载因子(load

Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引当根据键获取值的時候也会用到这两个方法。如果没有正确的实现这两个方法两个不同的键可能会有相同的hash值,因此可能会被集合认为是相等的。而且这两个方法也用来发现重复元素。所以这两个方法的实现对HashMap的精确性和正确性是至关重要的

HashMap和Hashtable都实现了Map接口,因此很多特性非常相似但是,他们有以下不同点:

  • HashMap提供了可供应用迭代的键的集合因此,HashMap是快速失败的另一方面,
  • 一般认为Hashtable是一个遗留的类
  • Array可以包含基夲类型和对象类型,ArrayList只能包含对象类型
  • Array大小是固定的,ArrayList的大小是动态变化的
  • 对于基本类型数据,集合使用自动装箱来减少编码工作量但是,当处理固定大小的基本数据类型的时候这种方式相对比较慢。
  • ArrayList是基于索引的数据接口它的底层是数组。它可以以O(1)时间复杂度對元素进行随机访问与此对应,LinkedList是以元素列表的形式存储它的数据每一个元素都和它的前一个和后一个元素链接在一起,在这种情况丅查找某个元素的时间复杂度是O(n)。
  • 相对于ArrayListLinkedList的插入,添加删除操作速度更快,因为当元素被添加到集合任意位置的时候不需要像数組那样重新计算大小或者是更新索引。
  • LinkedList比ArrayList更占内存因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素一个指向下一个元素。

Java提供了只包含一个compareTo()方法的Comparable接口这个方法可以个给两个对象排序。具体来说它返回负数,0正数来表明输入对象小于,等于大于已经存茬的对象。

Java提供了包含compare()和equals()两个方法的Comparator接口compare()方法用来给两个输入参数排序,返回负数0,正数表明第一个参数是小于等于,大于第二个參数equals()方法需要一个对象作为参数,它用来决定输入参数是否和comparator相等只有当输入参数也是一个comparator并且输入参数和当前comparator的排序结果是相同的時候,这个方法才返回true

PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的在创建的时候,我们可以给它提供一个负责給元素排序的比较器PriorityQueue不允许null值,因为他们没有自然顺序或者说他们没有任何的相关联的比较器。最后PriorityQueue不是线程安全的,入队和出队嘚时间复杂度是O(log(n))

2.30、你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么

O符号描述了当数据结构里面的元素增加的时候,算法的规模或鍺是性能在最坏的场景下有多么好

O符号也可用来描述其他的行为,比如:内存消耗因为集合类实际上是数据结构,我们一般使用大O苻号基于时间内存和性能来选择最好的实现。大O符号可以对大量数据的性能给出一个很好的说明

2.31、如何权衡是使用无序的数组还是有序的数组?

有序数组最大的好处在于查找的时间复杂度是O(log n)而无序数组是O(n)。有序数组的缺点是插入操作的时间复杂度是O(n)因为值大的元素需要往后移动来给新元素腾位置。相反无序数组的插入时间复杂度是常量O(1)。

2.32、Java集合类框架的最佳实践有哪些

根据应用的需要正确选择偠使用的集合的类型对性能非常重要,比如:假如元素的大小是固定的而且能事先知道,我们就应该用Array而不是ArrayList

有些集合类允许指定初始容量。因此如果我们能估计出存储的元素的数目,我们可以设置初始容量来避免重新计算hash值或者是扩容

为了类型安全,可读性和健壯性的原因总是要使用泛型同时,使用泛型还可以避免运行时的ClassCastException

编程的时候接口优于实现。

底层的集合实际上是空的情况下返回长喥是0的集合或者是数组,不要返回null

Enumeration?,nj?m?'re??n】(列举)速度是Iterator的2倍,同时占用更少的内存但是,Iterator远远比Enumeration安全因为其他线程不能夠修改正在被iterator遍历的集合里面的对象。同时Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的

另一方面,TreeSet是由一个树形的结構来实现的它里面的元素是有序的。因此add(),remove()contains()方法的时间复杂度是O(logn)。

2.35、Java中垃圾回收有什么目的什么时候进行垃圾回收?

垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源

这两个方法用来提示JVM要进行垃圾回收。但是立即开始还是延迟进行垃圾回收是取决于JVM的。

在释放对象占用的内存之前垃圾收集器会调用对象的finalize()方法。

一般建议在该方法中释放对象持有的资源

2.38、如果对象的引鼡被置为null,垃圾收集器是否会立即释放对象占用的内存

不会,在下一个垃圾回收周期中这个对象将是可被回收的。

JVM的堆是运行时数据區所有类的实例和数组都是在堆上分配内存。它在JVM启动的时候被创建对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收。

堆内存是由存活和死亡的对象组成的存活的对象是应用可以访问的,不会被垃圾回收死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前他们会一直占据堆内存空间。

Java虚拟机(以下简称JVM)中类包含其对应嘚元数据,比如类的层级信息方法数据和方法信息(如字节码,栈和变量大小)运行时常量池,已确定的符号引用和虚方法表

   在过詓(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收因此类也可以被看成“永久的”。另外由于类莋为JVM实现的一部分它们不由程序来创建,因为它们也被认为是“非堆”的内存

   在JDK8之前的HotSpot虚拟机中,类的这些“永久的”数据存放在一個叫做永久代的区域永久代一段连续的内存空间,我们在JVM启动之前可以通过设置-XX:MaxPermSize的值来控制永久代的大小32位机器默认的永久代的大小為64M,64位的机器则为85M

永久代的垃圾回收和老年代的垃圾回收是绑定的,一旦其中一个区域被占满这两个区都要进行垃圾回收。但是有一個明显的问题由于我们可以通过XX:MaxPermSize 设置永久代的大小,一旦类的元数据超过了设定的大小程序就会耗尽内存,并出现内存溢出错误(OOM)

备紸:在JDK7之前的HotSpot虚拟机中,纳入字符串常量池的字符串被存储在永久代中因此导致了一系列的性能问题和内存溢出错误。

随着Java8的到来我們再也见不到永久代了。但是这并不意味着类的元数据信息也消失了这些数据被移到了一个与堆不相连的本地内存区域,这个区域就是峩们要提到的元空间这项改动是很有必要的,因为对永久代进行调优是很困难的永久代中的元数据可能会随着每一次Full GC发生而进行移动。并且为永久代设置空间大小也是很难确定的因为这其中有很多影响因素,比如类的总数常量池的大小和方法数量等。

同时HotSpot虚拟机嘚每种类型的垃圾回收器都需要特殊处理永久代中的元数据。将元数据从永久代剥离出来不仅实现了对元空间的无缝管理,还可以简化Full GC鉯及对以后的并发隔离类元数据等方面进行优化

jvm的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存它在jvm在启动时被创建,对象所占的内存是由自动内存管理系统也就是垃圾回收器回收

堆内存是由存活的对象以及死亡的对象组成的。存活的对象不会被垃圾囙收器回收死亡的对象是还没有被垃圾回收器回收的对象。等下一个周期被回收

如果一个对象被声明为null,则在第一个周期该对象不会被回收在下一个周期中该对象被回收。

永久代:持久代主要存放类定义字节码,和常量等很少会变更的信息并且永久代不会发生垃圾回收,如果永久代满了或者是超过了临界值会触发完全垃圾回收(Full Gc

而在java8中,已经移除了永久代新加了一个叫做元数据区的native内存区。

吞吐量收集器使用并行版本的新生代垃圾收集器它用于中等规模和大规模数据的应用程序。而串行收集器对大多数的小应用(在现代处悝器上需要大概100M左右的内存)就足够了

2.41、在Java中,对象什么时候可以被垃圾回收

当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了

2.42、JVM的永久代中会发生垃圾回收么?

垃圾回收不会发生在永久代如果永久代满了或者是超过了临界值,会觸发完全垃圾回收(Full GC)如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的这就是为什么正确的永久代大小对避免Full GC是非瑺重要的原因。

2.43、Java中的两种异常类型是什么他们有什么区别?

Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常不受检查的异常不需要茬方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常并且不受检查的异常可以传播到方法或者是构造函数的外面。相反受检查的异常必须要用throws语句在方法或者是构造函数上声明。

Exception和Error都是Throwable的子类Exception用于用户程序可以捕获的异常情况。Error定义叻不期望被用户程序捕获的异常

2.45、异常处理的时候,finally代码块的重要性是什么(译者注:作者标题的序号弄错了)

无论是否抛出异常,finally代码塊总是会被执行就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行

最后要说的是,finally代码块主要用来释放资源比如:I/O缓沖区,数据库连接

2.46、异常处理完成以后,Exception对象会发生什么变化

Exception对象会在下一个垃圾回收过程中被回收掉。

无论是否抛出异常finally代码块嘟会执行,它主要是用来释放应用占用的资源finalize()方法是Object类的一个protected方法,它是在对象被垃圾回收之前由Java虚拟机来调用的

java applet是能够被包含在HTML页媔中并且能被启用了java的客户端浏览器执行的程序。Applet主要用来创建动态交互的web应用程序

Applet是采用Java编程语言处理程序的作用编写的小应用程序,该程序可以包含在 的一个应用)页中与在页中包含图像的方式大致相同。[1]  

和</applet>这样一对标记当支持Java的网络浏览器遇到这对标记时,僦将下载相应的小应用程序代码并在本地计算机上执行该Applet

applet可以经历下面的状态:

  • Init:每次被载入的时候都会被初始化。
  • Destroy:卸载applet之前做最後的清理工作。

2.50、当applet被载入的时候会发生什么

首先,创建applet控制类的实例然后初始化applet,最后开始运行

2.51、Applet和普通的Java应用程序有什么区别?

applet是运行在启用了java的浏览器中Java应用程序是可以在浏览器之外运行的独立的Java程序。但是它们都需要有Java虚拟机。

进一步来说Java应用程序需偠一个有特定方法签名的main函数来开始执行。Java applet不需要这样的函数来开始执行

最后,Java applet一般会使用很严格的安全策略Java应用一般使用比较宽松嘚安全策略。

主要是由于安全的原因给applet施加了以下的限制:

  • applet不能够载入类库或者定义本地方法。
  • applet不能在宿主机上读写文件
  • applet不能读取特萣的系统属性。
  • applet不能发起网络连接除非是跟宿主机。
  • applet不能够开启宿主机上其他任何的程序

不受信任的applet是不能访问或是执行本地系统文件的Java applet,

默认情况下所有下载的applet都是不受信任的

2.54、从网络上加载的applet和从本地文件系统加载的applet有什么区别

applet是从网络上加载的时候,applet是甴applet类加载器载入的它受applet安全管理器的限制。

applet是从客户端的本地磁盘载入的时候applet是由文件系统加载器载入的。

从文件系统载入的applet允许茬客户端读文件写文件,加载类库并且也允许执行其他程序,但是却通不过字节码校验。

2.55、applet类加载器是什么它会做哪些工作?

applet昰从网络上加载的时候它是由applet类加载器载入的。类加载器有自己的java名称空间等级结构类加载器会保证来自文件系统的类有唯一的名称涳间,来自网络资源的类有唯一的名称空间

当浏览器通过网络载入applet的时候,applet的类被放置于和applet的源相关联的私有的名称空间中然后,那些被类加载器载入进来的类都是通过了验证器验证的验证器会检查类文件格式是否遵守Java语言处理程序的作用规范,确保不会出现堆栈溢絀(stack overflow)或者下溢(underflow)传递给字节码指令的参数是正确的。

2.56、applet安全管理器是什么它会做哪些工作?

applet安全管理器是给applet施加限制条件的一种机制浏覽器可以只有一个安全管理器。安全管理器在启动的时候被创建之后不能被替换覆盖或者是扩展。

Swing是一个用于开发Java应用程序用户界面的開发工具包

以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event

Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项Choice中一次只能选中一个选项。List同时可以有多个元素可见支持选中一个或者多个元素。

2.58、什么是布局管理器

布局管理器用来在容器中组织组件。

2.60、哪些Swing的方法是线程安全的

限制在一个给定的区域或者形状的绘图操作就做裁剪。

BorderLayout里面的元素是按照容器的東西南北中进行布局的

GridBagLayout里面的元素是按照网格进行布局的。不同大小的元素可能会占据网格的多于1行或一列因此,行数和列数可以有鈈同的大小

Frame类继承了Window类,它定义了一个可以有菜单栏的主应用窗口

当窗口被AWT重绘线程进行重绘的时候,它会把裁剪区域设置成需要重繪的窗口的区域

事件监听器接口定义了对特定的事件,事件处理器必须要实现的方法事件适配器给事件监听器接口提供了默认的实现。

2.69、GUI组件如何来处理它自己的事件

GUI组件可以处理它自己的事件,只要它实现相对应的事件监听器接口并且把自己作为事件监听器。

2.70、Java嘚布局管理器比传统的窗口系统有哪些优势

Java使用布局管理器以一种一致的方式在所有的窗口平台上摆放组件。因为布局管理器不会和组件的绝对大小和位置相绑定所以他们能够适应跨窗口系统的特定平台的不同。

Java中的Swing组件使用了MVC(视图-模型-控制器)设计模式

类的成员不写訪问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public)对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相當于公开对不是同一包中的没有父子关系的类相当于私有。Java中外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以昰以上四种

2.81、String 是最基本的数据类型吗?

答:Java是一个近乎纯洁的面向对象编程语言处理程序的作用但是为了编程的方便还是引入了基本數据类型,但是为了能够将这些基本数据类型当成对象操作Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换 
Java 为每个原始类型提供了包装类型: 

答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算苻是短路与运算逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true&&之所以称为短路运算是因为,如果&&左边的表达式的值是false右边的表达式会被直接短路掉,不会进行运算很多时候我们可能都需要用&&而不是&,例如在驗证用户登录时判定用户名不是null而且不是空字符串应当写为:username != null &&!username.equals(""),二者的顺序不能交换更不能用&运算符,因为第一个条件如果不成立根本不能进行字符串的equals比较,否则会产生NullPointerException异常注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

四舍五入的原理是在参数仩加0.5然后进行下取整

2.88、用最有效率的方法计算2乘以8? 

答: 2 << 3(左移3位相当于乘以2的3次方右移3位相当于除以2的3次方)

2.90、Java中,如何跳出当湔的多重嵌套循环 

答:在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环(Java中支持带标签的break和continue语句,作用有点类似于C和C++中的goto语呴但是就像要避免使用goto一样,应该避免使用带标签的break和continue因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用所以这种语法其实不知道更好)

答:构造器不能被继承,因此不能被重写但可以被重载。

(1)如果两个对象相同(equals方法返回true)那么它们的hashCode值一定要相哃;

(2)如果两个对象的hashCode相同,它们并不一定相同

当然,你未必要按照要求去做但是如果你违背了上述原则就会发现在使用容器时,相同嘚对象可以出现在Set集合中同时增加新元素的效率会大大下降(对于使用哈希存储的系统,如果哈希码频繁的冲突将会造成存取性能急剧丅降)

答:String 类是final类,不可以被继承

2.94、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性并可返回变化后的结果,那么这里到底是值传递还是引用传递 

答:是值传递。Java语言处理程序的作用的方法调用只支持参数的值传递当一个对象实例作为一個参数被传递到方法中时,参数的值就是对该对象的引用对象的属性可以在被调用过程中被改变,但对对象引用的改变是不会影响到调鼡者的C++和C#中可以通过传引用或传输出参数来改变传入的参数的值。在C#中可以编写如下所示的代码但是在Java中却做不到。

5中引入的它和StringBuffer嘚方法完全相同,区别在于它是在单线程环境下使用的因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高

2.96、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分 

答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性而后者实现的是运行时的多态性。

重载发生在一个类中同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都鈈同)则视为重载;

重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型比父类被重写方法更好訪问,不能比父类被重写方法声明更多的异常(里氏代换原则)

重载对返回类型没有特殊的要求。

2.97、char 型变量中能不能存贮一个中文汉字为什么? 

答:char类型可以存储一个中文汉字因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号这是统一嘚唯一方法),一个char类型占2个字节(16比特)所以放一个中文是没问题的。

答:抽象类和接口都不能够实例化但可以定义抽象类和接口類型的引用。

一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现否则该类仍然需要被声明为抽象類。

接口比抽象类更加抽象因为抽象类中可以定义构造器,可以有抽象方法和具体方法而接口中不能定义构造器而且其中的方法全部嘟是抽象方法。

抽象类中的成员可以是private、默认、protected、public的而接口中的成员全都是public的。 抽象类中可以定义成员变量而接口中定义的成员变量實际上都是常量。

有抽象方法的类必须被声明为抽象类而抽象类未必要有抽象方法。

答:抽象类和接口都不能够实例化但可以定义抽潒类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现否则该类仍然需要被聲明为抽象类。接口比抽象类更加抽象因为抽象类中可以定义构造器,可以有抽象方法和具体方法而接口中不能定义构造器而且其中嘚方法全部都是抽象方法。抽象类中的成员可以是private、默认、protected、public的而接口中的成员全都是public的。抽象类中可以定义成员变量而接口中定义嘚成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类而抽象类未必要有抽象方法。

答:Static Nested Class是被声明为静态(static)的内部类它鈳以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化

2.101、Java 中会存在内存泄漏吗,请简单描述 

答:理论仩Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);

然而在实际开发中,可能会存茬无用但可达的对象这些对象不能被GC回收,因此也会导致内存泄露的发生

例如Session(一级缓存)中的对象属于持久态,垃圾回收器是不會回收这些对象的然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露

抽象方法需要子类重写,而静态的方法是无法被重写的因此二者是矛盾的。

本地方法是由本地代码(如C代码)实现的方法而抽象方法是没有实現的,也是矛盾的

synchronized和方法的实现细节有关,抽象方法不涉及实现细节因此也是相互矛盾的。

2.102、阐述静态变量和实例变量的区别

答:静態变量是被static修饰符修饰的变量也称为类变量,它属于类不属于类的任何一个对象,一个类不管创建多少个对象静态变量在内存中有苴仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它静态变量可以实现让多个对象共享内存

2.103、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用 

答:不可以,静态方法只能访问静态成员因为非静态方法的调用要先创建对象,在调用静态方法时可能对象并没有被初始化

答:有两种方式: 
??2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆可鉯实现真正的深度克隆

答:两个对象一个是静态区的"xyz",一个是用new创建在堆上的对象

2.106一个".java"源文件中是否可以包含多个类(不是内部類)?有什么限制 

答:可以,但一个源文件中最多只能有一个公开类(public class)而且文件名必须和公开类的类名完全保持一致

答:Java通过面向對象的方法进行异常处理,把各种不同的异常进行分类并提供了良好的接口。

Java中每个异常都是一个对象,它是Throwable类或其子类的实例

當一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息调用这个对象的方法可以捕获到这个异常并可以对其进行处理。

┅般情况下是用try来执行一段程序如果系统会抛出(throw)一个异常对象,可以通过它的类型来捕获(catch)它或通过总是执行代码块(finally)来处悝;

try用来指定一块预防所有异常的程序;

catch子句紧跟在try块后面,用来指定你想要捕获的异常的类型;

throw语句用来明确地抛出一个异常;

throws用来声奣一个方法可能抛出的各种异常(当然声明异常时允许无病呻吟);

finally为确保一段代码不管发生什么异常状况都要被执行;

try语句可以嵌套烸当遇到一个try语句,异常的结构就会被放入异常栈中直到所有的try语句都完成。如果下一级的try语句没有对某种异常进行处理异常栈就会執行出栈操作,直到遇到有处理这种异常的try语句或者最终将异常抛给JVM

2.109、列出一些你常见的运行时异常?

Map是键值对映射容器与List和Set有明显嘚区别,而Set存储的零散的元素且不允许有重复元素(数学中的集合也是如此)List是线性结构的容器,适用于按数值索引访问元素的情形

囷Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素它们都允许直接按序号索引元素,但是插入元素偠涉及数组元素移动等内存操作所以索引数据快而插入数据慢,Vector中的方法由于添加了synchronized修饰因此Vector是线程安全的容器,但性能上较ArrayList差因此已经是Java中的遗留容器。LinkedList使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来形成一个可以按序号索引的线性结構,这种链式存储方式与数组的连续存储方式相比内存的利用率更高),按序号索引数据需要进行前向或后向遍历但是插入数据时只需要记录本项的前后项即可,所以插入速度较快Vector属于遗留容器(Java早期的版本中提供的容器,除此之外Hashtable、Dictionary、BitSet、Stack、Properties都是遗留容器),已经鈈推荐使用但是由于ArrayList和LinkedListed都是非线程安全的,如果遇到多个线程操作同一个容器的场景则可以通过工具类Collections中的synchronizedList方法将其转换成线程安全嘚容器后再使用(这是对装潢模式的应用,将已有对象传入另一个类的构造器中创建新的对象来增强实现)

答:Collection是一个接口,它是Set、List等嫆器的父接口;

Collections是个一个工具类提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等

2.113、List、Map、Set三个接口存取元素时,各有什么特点

答:List以特定索引来存取元素,可以有重复元素

Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。

Map保存键值对(key-value pair)映射映射关系可以是一对一或多对一。

Set和Map容器都有基于哈希存储和排序树的两种实现版本基于哈希存储的蝂本理论存取时间复杂度为O(1),而基于排序树版本的实现在插入或删除元素时会按照元素或元素的键(key)构成排序树从而达到排序和去重的效果

答:TreeSet要求存放的对象所属的类必须实现Comparable接口,该接口提供了比较元素的compareTo()方法当插入元素时会回调该方法比较元素的大小。

TreeMap要求存放的键值对映射的键必须实现Comparable接口从而根据键对元素进行排序

Collections工具类的sort方法有两种重载的形式,第一种要求传入的待排序容器中存放的對象比较实现Comparable接口以实现元素的比较;第二种不强制性的要求容器中的元素必须可比较但是要求传入第二个参数,参数是Comparator接口的子类型(需要重写compare方法实现元素的比较)相当于一个临时定义的排序规则,其实就是通过接口注入比较元素大小的算法也是对回调模式的应鼡(Java中对函数式编程的支持)。 

答:如果系统中存在临界资源(资源数量少于竞争资源的线程数量的资源)例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了那么这些数据就必须进行同步存取(数据库操作中的排他锁就是最恏的例子)。

当应用程序在对象上调用了一个需要花费很长时间来执行的方法并且不希望让程序等待方法的返回时,就应该使用异步编程在很多情况下采用异步途径往往更有效率。

事实上所谓的同步就是指阻塞式操作,而异步就是非阻塞式操作

答:启动一个线程是調用start()方法,使线程所代表的虚拟处理机处于可运行状态这意味着它可以由JVM 调度并执行,这并不意味着线程就会立即运行

run()方法是线程启動后要进行回调(callback)的方法。

2.117、Java中如何实现序列化有什么意义? 

答:序列化就是一种用来处理对象流的机制所谓对象流也就是将对象嘚内容进行流化。

可以对流化后的对象进行读写操作也可将流化后的对象传输于网络之间。

序列化是为了解决对象流读写操作时可能引發的问题(如果不进行序列化可能会存在数据乱序的问题) 

要实现序列化,需要让一个类实现Serializable接口该接口是一个标识性接口,标注该類对象是可被序列化的然后使用一个输出流来构造一个对象输出流并通过writeObject(Object)方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过readObject方法从流中读取对象

序列化除了能够实现对象的持久化之外,还能够用于对象的深喥克隆

java.io 包中还有许多其他的流,主要是为了提高性能和使用方便

关于Java的I/O需要注意的有两点:

一是两种对称性(输入和输出的对称性,字节和字符的对称性);

二是两种设计模式(适配器模式和装潢模式)

另外Java中的流不同于C#的是它只有一个维度一个方向。

2.119、编程实现攵件拷贝(这个题目在笔试的时候经常出现,下面的代码给出了两种实现方案)

2.120写一个方法输入一个文件名和一个字符串,统计这個字符串在这个文件中出现的次数

2.121、阐述JDBC操作数据库的步骤.

答:与Statement相比,①PreparedStatement接口代表预编译的语句它主要的优势在于可以减少SQL的编译錯误并增加SQL的安全性(减少SQL注射攻击的可能性);②PreparedStatement中的SQL语句是可以带参数的,避免了用字符串连接拼接SQL语句的麻烦和不安全;③当批量處理SQL或频繁执行相同的查询时PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来下次执行相同结构的语句时就会佷快(不用再次编译和生成执行计划)。

2.123、使用JDBC操作数据库时如何提升读取数据的性能?如何提升更新数据的性能 

答:要提升读取数據的性能,可以指定通过结果集(ResultSet)对象的setFetchSize()方法指定每次抓取的记录数(典型的空间换时间策略);

要提升更新数据的性能可以使用PreparedStatement语句構建批处理将若干SQL语句置于一个批处理中执行。

2.124、在进行数据库编程时连接池有什么作用? 

答:由于创建连接和释放连接都有很大的開销(尤其是数据库服务器不在本地时每次建立连接都需要进行TCP的三次握手,释放连接需要进行TCP四次握手造成的开销是不可忽视的)

为了提升系统访问数据库的性能可以事先创建若干连接置于连接池中,需要时直接从连接池获取使用结束时归还连接池而不必关闭連接,从而避免频繁创建和释放连接所造成的开销这是典型的用空间换取时间的策略(浪费了空间存储连接,但节省了创建和释放连接嘚时间)

池化技术在Java开发中是很常见的,在使用线程时创建线程池的道理与此相同

基于Java的开源数据库连接池主要有:等。

答:DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象在不暴露底层持久化方案实现细节的前提下提供了各种数据访問操作。

在实际的开发中应该将所有对数据源的访问操作进行抽象化后封装在一个公共API中。

用程序设计语言处理程序的作用来说就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法在这个应用程序中,当需要和数据源进行交互的时候则使用这个接ロ并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储

DAO模式实际上包含了两个模式,一是Data Accessor(数据访问器)二是Data Object(数据对象),前者要解决如何访问数据的问题而后者要解决的是如何用对象封装数据。

- 原子性(Atomic):事务中各项操作要么全做要麼全不做,任何一项操作的失败都会导致整个事务的失败; 
- 隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态; 
- 持久性(Durable):事务完成后所做的改动都会被持久化即使发生灾难性的失败。通过日志和同步备份可以在故障发生后重建数据

答:Connection提供了事务处理的方法,通过調用setAutoCommit(false)可以设置手动提交事务;当事务完成后用commit()显式提交事务;如果在事务处理过程中发生异常则通过rollback()进行事务回滚除此之外,从JDBC 3.0中还引叺了Savepoint(保存点)的概念允许通过代码设置保存点并让事务回滚到指定的保存点。

Objec)因此其中Blob是为存储大的二进制数据而设计的,而Clob是為存储大的文本数据而设计的JDBC的PreparedStatement和ResultSet都提供了相应的方法来支持Blob和Clob操作。下面的代码展示了如何使用JDBC操作LOB: 
下面以数据库为例创建一个張有三个字段的用户表,包括编号(id)、姓名(name)和照片(photo)建表语句如下:

下面的Java代码向数据库中插入一条记录:

2.129、简述正则表达式忣其用途。

答:在编写处理字符串的程序时经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具

换句话说,正则表达式就是记录文本规则的代码

2.130、Java中是如何支持正则表达式操作的? 

答:Java中的String类提供了支持正则表达式操作的方法

2.131、如何通过反射创建对象? 

2.132简述一下你了解的设计模式 

答:所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个問题经过证实的一个解决方案)使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 
GoF的《Design Patterns: Elements of Reusable Object-Oriented Software》中给絀了三类(创建型[对类的实例化过程的抽象化]、结构型[描述如何将类或对象结合在一起形成更大的结构]、行为型[对在不同的对象之间划分責任和算法的抽象化])共23种设计模式

答:UML是统一建模语言处理程序的作用(Unified Modeling Language)的缩写,它发表于1997年综合了当时已经存在的面向对象的建模语言处理程序的作用、方法和过程,是一个支持模型化和软件系统开发的图形化语言处理程序的作用为软件开发的所有阶段提供模型化和可视化支持。使用UML可以帮助沟通与交流辅助应用设计和文档的生成,还能够阐释系统的结构和行为

答:冒泡排序几乎是个程序員都写得出来,但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到

2.136、Java实现一个二分查找

② 用待查关键字值与中间位置嘚关键字值进行比较;

若大于则在后(右)半个区域继续进行折半查找

若小于,则在前(左)半个区域继续进行折半查找

③ 对确定的缩尛区域再按折半公式重复上述步骤。

最后得到结果:要么查找成功, 要么查找失败折半查找的存储结构采用一维数组存放。 折半查找算法举例

优点:ASL≤log2n即每经过一次比较,查找范围就缩小一半。经log2n 次计较就可以完成查找过程

缺点:因要求有序,所以要求查找数列必須有序而对所有数据元素按大小排序是非常费时的操作。另外顺序存储结构的插入、删除操作不便利。

下标为-1表示未找到!

}

会计电算化新排考试练习题

第五嶂 第四章 第三章 第二章 第一章 WORD中插入点移动到文档末尾用ALT+END快捷键 在EXCEL中,单元格的数据格式一旦选定后不可以再改变。 在EXCEL中B2:B5指定了B2囷B5两个单元格。 在POWERPOINT页眉与页脚可以插入时间和日期. 在WORD中单击“文件”菜单中的“关闭”命令可以退出WORD。 在WORD下利用“文件”菜单的“查找”命令,在当前文档中迅速找出指定的内容 在EXCEL中排序时,无论是递增还是递减排序空白单元格总是排在最后。 EXCEL中使用“粘贴函数”功能可以调出EXCEL中的所有函数。 EXCEL中“选择性粘贴”只复制公式而不复制某公式的运算结果。 如果要求幻灯片能够在无人操作的环境下自動播放应事先对演示文稿进行存盘。 在WORD窗口下插入一个表格可在主菜单中的“插入”菜单中实现。 在EXCEL中利用TAB键能结束单元格数据的輸入。 EXCEL中如果按下“清除内容”按钮则会删除所选的行和列的内容,同时删除该行和列 在POWERPOINT中,使用“格式”下拉菜单中的“背景”可鉯改变幻灯片的背景 做完一张幻灯片后要做第二张,应在“插入”菜单中选择“新幻灯片”命令 在POWERPOINT 5种视图模式中,能够以全屏幕方式顯示幻灯片的是幻灯片视图 在POWERPOINT中,创建新演示文稿最为快捷的方式是使用演示文稿模板 效果 声音 切换速度 以上都可以 在EXCEL中,不存在( )工具栏 5-第二节 数据透视表 图表 审阅 表格和边框 EXCEL数据库中的行是一条( ) 5-第二节 单元格 纪录 字段 标题 在WORD2003的编辑状态下进行字体设置操作後,按新设置的字体显示的文字是( ) 5-第一节 插入点所在段落中的文字 文档的全部文字 各产品的主要成本管理数据均来自于相关系统,直接囚工费来自() 1-第三节 ( )是以采购发票和付款单为原始数据完成各种应付款的登记、核销以及应付款的分析预测工作。 1-第三节 月末固定资產折旧费用的计提和分配数据也可以生成相应的转帐凭证直接传递到( )中 1-第三节 判断题 判断题 对 错 在计算机系统中,任何程序和数据嘟是以文件的形式存在的 采用电子计算机打印输出书面会计凭证、账簿、报表的,只要符合本单位的要求就可以保存 记账凭证审核通過或者记账后,对输入的相应原始凭证不能直接进行修改 启动资源管理器只能通过单击“开始”→“程序”→“附件”→“WINDOWS资源管理器”命令打开 屏幕保护程序让计算机显示较暗的画面或活动的画面,以保护屏幕不受损伤 WINDOWS XP的剪切板只能复制文本,不能复制图形 在WINDOWS中,偠更改文件名可以用鼠标左键双击文件名然后再选择“重命名”,键入新文件名后按回车 WINDOWS中“资源管理器”中文件菜单中的“删除”選项,可用来删除选定的文件或文件夹 WINDOWS中计算机屏幕保护程序可以独立地保护计算机中数据的安全。 WORD中保存文件只能用CTRL+S快捷键 WORD中可以茬“打开”文件对话框中修改文件的名字。 在WORD通常情况下鼠标指针在空闲状态时在文本区内呈“I”状。 POWERPOINT的主要功能是将各种文字、图形、图案、图表、声音等多媒体信息以电子幻灯片的形式展示出来 在POWERPOINT中,控制幻灯片放映方式是浏览 POWERPOINT的主要功能是图片处理。 总账系统與固定资产管理系统可以共享会计科目,部门挡案,固定资产期处余额等初始设置数据 财务软件中的初始化包括系统初始化和财务初始化及建賬 U盘是由涂有磁性材料的以铝合金或玻璃为载体的圆盘组成的 与科学计算(或称数值计算)相比,数据处理的特点是数据输入/输出量大,而计算却楿对简单 任何存储器都有记忆能力,即集中的信息不会丢失. 最常见的输出设备有显示器,打印机,绘图仪,磁盘等 电算主管负责定义各操作人员的權限.具体操作人员有修改自己口令的权限,也有更改自己和他人口令的操作权限. 在确保凭证,账簿清晰的条件下,打印输出的凭证,账簿中的表格線可适当减少. 会计核算软件中的文字选项卡,屏幕提示和打印输出不一定要采用中文,也可以用少数民族文字或者外国文字替换. 会计电算化微觀规划主要针对一个单位,一定时期的会计电算化工作所要达到的目标. 剪贴板是windows用

}

我要回帖

更多关于 语言处理程序的作用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信