为您找到与java基础常见面试题相关的共200个结果:
Java基础面试题(附答案)
Java面试题涵盖的范围非常广泛,根据不同的岗位和公司要求,面试题可能会有所不同。为了让面试者能顺利应对面试官的问题,下面小编为大家收集整理了关于Java基础面试题的相关内容,希望对大家有所帮助!
1.java异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行匹配,如果匹配成功则执行catch内的语句。简单的应用:在所以throws语句的地方加入try-catch。标准应用:try-catch-finally-throw-throws一起使用。
2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用System.gc(),实际上调用Runtime.getRuntime().gc()
3. Error与Exception区别
答:Error是jvm进行处理,是jvm出错
exception是可以由程序处理的,可以用try-catch捕获的
4. final,finally,finallize
答:final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的
6. Static Nested Class 与Inner Class的区别
答:使用Static定义的Class就是外部类,可以通过外部类. 内部类直接访问
而Inner Class是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)采用异步处理方式,性能较高,是非线程安全的 3)允许null
HashTable:
1)released in jdk 1.0 ,old Class
2)采用同步处理方式,性能低,是线程安全的
3)不允许null
8. assert代表什么?
答:asserts是jdk 1.4之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计的值,一般开发很少使用。要使用assert,必须加上 -ea参数
9. gc是什么?
答:gc是garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放
10. String s = new String("xyz")产生了几个对象?
答:一个匿名对象xyz,在栈空间内。一个new实例化的对象,在堆空间内。
浏览量:2
下载量:0
时间:
java常见面试题(附答案)
Java面试题涵盖的范围非常广泛,根据不同的岗位和公司要求,面试题可能会有所不同。为了让面试者能顺利应对面试官的问题,下面小编为大家收集整理了关于java常见面试题的相关内容,希望对大家有所帮助!
一般来说,试题会分为三个部分,Java基础、资料库基础和综合题。
首先是Java基础,这个很简单,也就是考考你对Java语言本身的理解,包括语法,类库的使用等。有选择题,也会有写程式码题。写程式码的时候认真仔细就是了。基础题答案一般都比较死,所以尽量不要错。在这,出一道我遇到的题考考大家,Java程式设计:把American,Japan,China,France,Brazil按英文字母排序。
其次是资料库。准确的说,考的不是资料库,而是SQL语句。一般题型是,给两三个表,然后让你根据需求写SQL。最普通的就是学生表、选课表和成绩表。要掌握的就是连线查询,还有就是一些函式。
浏览量:2
下载量:0
时间:
Internet使Java成为网上最流行的编程语言,下面是读文网小编为大家带来的2016java基础面试题,相信对你会有帮助的。
1 、把 ab ef ij cd gh 放到 List 里,然后对此 List 快速排序,并打印结果
2 、表 File 中有 2 个字段 file,vcFile,file 为 1 的所相关的 vcFile 的信息,用 jdbc 连接数据库,并打印查询结果的第三条
4 corba 对象里有一个 void corbaPing 怎样通过返回的一个空对象判断其状态?
5 corb 中的 COS 三种实现。
6 WTS 的几种实现形 , 文字描述即可,无需写代码。
7 、纯 java 技术能否实现 jmcp 协议?
8 struts 的 5 个主要的类。并且哪个类为 MVC 中的 C?
Class Test {
System.out.println( b );
static Test{
System.out.println( a );
public Test{
System.out.println( c );
public String out{
System.out.println( 111 );
public class Test1{
public static void main(String args){
System.out.println(out);
问题是1 怎么修改程序让他正确,用尽可能多的方法,并写出执行结果
2 如果只修改 main 函数,能打出 abc 吗? bac 呢?为什么
2、写一个单例的例子
3、String str= WeeciolGmmcc
4、有员工表 , 字段 id ,name,managerid ,还有个啥字段,记不清楚了,没用到,然后查姓名,领导的姓名,如果没领导的话则显示无
id name managerid
1 张三 李四
2 李四 赵六
3 王五 赵六
4 赵六
看过“2016java基础面试题”
浏览量:2
下载量:0
时间:
哪些面试题是java常见的呢?下面是读文网小编为大家带来的常见java面试题,相信对你会有帮助的。
问题:如果main方法被声明为private会怎样?
答案:能正常编译,但运行的时候会提示"main方法不是public的"。
问题:Java里的传引用和传值的区别是什么?
答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
问题:如果要重写一个对象的equals方法,还要考虑什么?
答案:hashCode。
问题:Java的"一次编写,处处运行"是如何实现的?
答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。
问题:说明一下public static void main(String args[])这段声明里每个关键字的作用
答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.
static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
void: main方法没有返回值。
String是命令行传进参数的类型,args是指命令行传进的字符串数组。
问题:==与equals的区别
答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .
==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
问题:如果去掉了main方法的static修饰符会怎样?
答案:程序能正常编译。运行时会抛NoSuchMethodError异常。
问题:为什么oracle type4驱动被称作瘦驱动?
答案:oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平台独立的,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。
问题:介绍一下finalize方法
答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。
接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。
问题:什么是Java API?
答案:Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。
问题:GregorianCalendar类是什么东西?
答案:GregorianCalendar提供了西方传统日历的支持。
问题:ResourceBundle类是什么?
答案:ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。
问题:为什么Java里没有全局变量?
答案:全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。
问题:如何将String类型转化成Number类型?
答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例:
2 String numString = “1000″;
int id=Integer.valueOf(numString).intValue();
问题:SimpleTimeZone类是什么?
答案:SimpleTimeZone提供公历日期支持。
问题:while循环和do循环有什么不同?
答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。
问题:Locale类是什么?
答案:Locale类用来根据语言环境来动态调整程序的输出。
问题:面向对象编程的原则是什么?
答案:主要有三点,多态,继承和封装。
问题:介绍下继承的原则
答案:继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。
问题:什么是隐式的类型转化?
答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。
问题:sizeof是Java的关键字吗?
答案:不是。
问题:native方法是什么?
答案:native方法是非Java代码实现的方法。
问题:在System.out.println()里面,System, out, println分别是什么?
答案:System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。
问题:封装,继承和多态是什么?
答案:简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。
多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。
问题:显式的类型转化是什么?
答案:显式的类型转化是明确告诉了编译器来进行对象的转化。
问题:什么是Java虚拟机?
答案:Java虚拟机是能移植到不同硬件平台上的软件系统。
问题:类型向下转换是什么?
答案:向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。
问题:Java的访问修饰符是什么?
答案:访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。它们包含:
public: 所有类都可以访问 protected: 同一个包内以及所有子类都可以访问 private: 只有归属的类才能访问默认: 归属类及相同包下的子类可以访问
问题:所有类的父类是什么?
答案:Object.
问题:Java的基本类型有哪些?
答案:byte,char, short, int, long, float, double, boolean。
问题:静态类型有什么特点?
答案:静态变量是和类绑定到一起的,而不是类的实例对象。每一个实例对象都共享同样一份静态变量。也就是说,一个类的静态变量只有一份,不管它有多少个对象。类变量或者说静态变量是通过static这个关键字来声明的。类变量通常被用作常量。静态变量通常通过类名字来进行访问。当程序运行的时候这个变量就会创建直到程序结束后才会被销毁。类变量的作用域和实例变量是一样的。它的初始值和成员变量也是一样的,当变量没被初始化的时候根据它的数据类型,会有一个默认值。类似的,静态方法是属于类的方法,而不是类对象,它的调用并不作用于类对象,也不需要创建任何的类实例。静态方法本身就是final的,因为重写只会发生在类实例上,静态方法是和类绑定在一起的,不是对象。父类的静态方法会被子类的静态方法屏蔽,只要原来方法没有声明为final。非静态方法不能重写静态方法,也就是说,你不能在子类中把一个静态方法改成实例方法。
非静态变量在每一个对象实例上都有单独的一份值。
问题:&操作符和&&操作符有什么区别?
答案:当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式。当一个&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值为fale,第二个操作数就不会被求值。
问题:Java是如何处理整型的溢出和下溢的?
答案:Java根据类型的大小,将计算结果中的对应低阶字节存储到对应的值里面。
问题:public static void写成static public void会怎样?
答案:程序正常编译及运行。
问题,声明变量和定义变量有什么不同?
答案:声明变量我们只提供变量的类型和名字,并没有进行初始化。定义包括声明和初始化两个阶段String s;只是变量声明,String s = new String("bob"); 或者String s = "bob";是变量定义。
问题:Java支持哪种参数传递类型?
答案:Java参数都是进行传值。对于对象而言,传递的值是对象的引用,也就是说原始引用和参数引用的那个拷贝,都是指向同一个对象。
问题:对象封装的原则是什么?
答案:封装是将数据及操作数据的代码绑定到一个独立的单元。这样保障了数据的安全,防止外部代码的错误使用。对象允许程序和数据进行封装,以减少潜在的干涉。对封装的另一个理解是作为数据及代码的保护层,防止保护层外代码的随意访问。
问题:你怎么理解变量?
答案:变量是一块命名的内存区域,以便程序进行访问。变量用来存储数据,随着程序的执行,存储的数据也可能跟着改变。
问题:数值提升是什么?
答案:数值提升是指数据从一个较小的数据类型转换成为一个更大的数据类型,以便进行整型或者浮点型运算。在数值提升的过程中,byte,char,short值会被转化成int类型。需要的时候int类型也可能被提升成long。long和float则有可能会被转换成double类型。
问题:Java的类型转化是什么?
答案:从一个数据类型转换成另一个数据类型叫做类型转换。Java有两种类型转换的方式,一个是显式的类型转换,一个是隐式的。
问题:main方法的参数里面,字符串数组的第一个参数是什么?
答案:数组是空的,没有任何元素。不像C或者C++,第一个元素默认是程序名。如果命令行没有提供任何参数的话,main方法中的String数组为空,但不是null。
问题:怎么判断数组是null还是为空?
答案:输出array.length的值,如果是0,说明数组为空。如果是null的话,会抛出空指针异常。
问题:程序中可以允许多个类同时拥有都有main方法吗?
答案:可以。当程序运行的时候,我们会指定运行的类名。JVM只会在你指定的类中查找main方法。因此多个类拥有main方法并不存在命名冲突的问题。
问题:静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢?
答案:当类加载器将类加载到JVM中的时候就会创建静态变量,这跟对象是否创建无关。静态变量加载的时候就会分配内存空间。静态代码块的代码只会在类第一次初始化的时候执行一次。一个类可以有多个静态代码块,它并不是类的成员,也没有返回值,并且不能直接调用。静态代码块不能包含this或者super,它们通常被用初始化静态变量。
问题:一个类能拥有多个main方法吗?
答案:可以,但只能有一个main方法拥有以下签名:
1 public static void main(String[] args) {}
否则程序将无法通过编译。编译器会警告你main方法已经存在。
问题:简单的介绍下JVM是如何工作的?
答案:JVM是一台抽象的计算机,就像真实的计算机那样,它们会先将.java文件编译成.class文件(.class文件就是字节码文件),然后用它的解释器来加载字节码。
看过“常见java面试题”
浏览量:2
下载量:0
时间:
javaweb个人求职者要去参加面试之前,得先了解一下javaweb面试中一些常见的面试题并学会怎么回答。下面是读文网小编为大家带来的javaweb常见面试题及参考答案,相信对你会有帮助的。
(1)下列各题ABCD四个选顼中,只有一个选项是正确的,请将正确选项填写在答题纸上
(1)下列关于栈的描述中错误的是( B)
A. 栈是先进后出的线性表
B 栈只能顺序存储
C 栈具有记忆作用
D 对栈的插入弓删除操作中,不需要改变栈底指针
正确答案: B
分析: 栈是链式存储的
(2)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )
A 冒泡排序为n/2
B 冒泡排序为n
C 快速排序为n
D 快速排序为n(n-l)/2
正确答案: D
分析:
想想快速排序,每次都会选取线性表的轴值,随后以此轴值划分为两个子线性表再分别进行快排,在最坏情况下,也就是说每次选出的线性表轴值完全不能将这个线性表划分为两个子线性表。那么此时快速排序退化为冒泡排序了。
那么第一趟排序时,轴值(线性表的中间位置)被选出,这个值绝对是这个线性表中最大的(不然也不能是最坏情况),其他值都比他小,那么线性表现在分为完全不对等的两段(一段是0,另一段是n - 1),一段是这个值,一段是其他值。同样第二趟排序在刚才剩下的值中选中间值(剩余值中最大的那个),又分为不对等两段,依次递推。也就是说每次都比较了N - 1个元素(轴值选出后都与它比较大小),那么肯定是比较了n - 1次(如第一次先挑了个轴值,然后剩下n - 1比较),n代表当前子线性表中元素个数 由此最白痴的数列问题出现了,如下
1 + 2 + 3 + .......... + n - 2 + n - 1 = n(n - 1) / 2
还有一种投机取巧的方法,在最垃圾情况下既然快排变为冒泡,那由时间复杂度知其必为o(n ^ 2)的复杂度,答案中ABC都是线性时间复杂,显然错误
(3)下列对于线性链表的描述中正确的是( )
A 存储空间间不一定是连续,且各元素的存储顺序是任意的
B 存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C 存储定间必须连续,且前件元素一定存储在后件元素的前面
D 存储空间必须连续,且各元素的存储顺序是任意的
答案是A, 分析 链接存储并不要求存储空间连续,存储位置也不用有序
(4)为了使模块爆可能独立,要求( )
A 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
答案:B
分析:高内聚,低耦合。
5)下列叙述中,正确的是( )
A Java语言的标识符是区分大小写的
B 源文件名与public类名可以不相同
C 源文件扩展名为.jar
D 源文件中public类的数目不限
答案:A
6)下列属于合法的Java标识符是( )
A _cat
B 5books
C +static
D -3.14159
答案:A
7) 在Java中,表示换行符的转义字符是( )
A
B f
C ‘n’
D dd
答案:A
( 8)扯Java中,所有类的根类是( )
A. java.lang.Object
B.java.lang.Class
C.java.applet.Applet
D.java.awt.Frame
答案:A
(9).在Java+中,用Package语句说明一个包时,该包的层次结构必须是(
A 与文件的结构相同
B 与文件目录的层次相同 )
C 与文件类型相同
D 与文件大小相同
答案:A
(10)在读字符文件Employee.dat时,使用该文件作为参数的类是( )。
A BufferReader
B DatalnputStream
C DataOutoutStream
D FileInputStream
答案:D
(11)在Java中,能实现多重继承效果的方式是( )。
A 内部类
B 适配器
C 接口
D 同步
答案:C
(12) char类型的取值范围是( )。
A 2-7~27-1
B 0~216-1
C -215~215—1
D 0~28-1
答案:A
(13)下列方法中可以用来创建一个新线程的是( )。
A 实现java.lang.Runnable接口并重写start0方法
B 实现java.iang.Runnable接口并重写run0方法
C 继承java.lang.Thread类并重写run0方法
D 继承java.lang.Thread类并重写start0方法
答案:C
(14)下列关于线程优先级的说法中,正确的是( )。
A.线程的优先级是不能改变的
B.线程的优先级是在创建线程时设置的
C.在创建线程后的任何时候都可以设置
D. B和C
答案:C
(15)下列代码中,将引起一个编译错误的行是( )。
1) public class Test{
2) int m, n;
3) public Test(){}
4)
5)
6)
7)
8)
9)
10)
11)
12)} public Test(int a){ m=a;) public static void main(String args0){ Test t1, t2; int j, k; j=0; k=0; t1 = new Test(); } t2 = new Test(j,k);
A.第3行
B.第5行
C.第6行
D.第10行
答案:D
(16)阅读下列代码后
public class Person{
int arr[]=new int[10];
public static void main(String args[ ]){
System.out.println(arr[l]);
正确的说法是( )。
A 编译时将产生错误
B 编译时正确,运行时将产生错误
C 输出零
D 输出空
答案:A
(17) AIDL支持以下哪种数据类型?l)string 2)list 3)map 4)All native java datatype( ){,
A.1,2和3
B.4
C.以上所有
D.都不支持
答案:C
分析:
AIDL 服务只支持有限的数据类型,如果用AIDL服务传递一些复杂的数据就需要做更一步处理,AIDL 服务支持的数据类型如下:
1. Java 的原生类型
2. String 和CharSequence
3. List 和 Map ,List和Map 对象的元素必须是AIDL支持的数据类型;
以上三种类型都不需要导入(import)
4. AIDL 自动生成的接口
需要导入(import)
5. 实现android.os.Parcelable 接口的类. 需要导入(import)。
二、多项选择题
下列各题A.、B.、C.、D.四个选项中,有一个或多个选项是正确的, (l)下列说法正确的有( )。
A. 环境变量可在编译source code时指定.
B.在编译程序时,所能指定的环境变盛不包括class path
C.javac -次可同时编译数个Java源文件
D. javac.exe能指定编译结果要置于哪个目录(directory)
答案:BCD
(2)不能用来修饰interface的有( )
A. private B.public C.protected D.static
答案:ACD
(3)下列说法错误的有( )
A.在类方法中可用this来调用本类的类方法
B。在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
答案:ACD
请将正确选项填写在答题纸上
(4)下列说法错误的有( )
A. Java面向对象语言容许单独的过程与函数存在
B. Java面向对象语言容许单独的方法存在
C. Java语亩中的方法属于类中的成员(member)
D. Java语言中的方法必定隶属于某…类(对象),调用方法与过程或函数相同 答案:ABC
(5)下列说法错误的有( )。
A.能被java.exe成功运行的java class文件必须有main()方法
B.J2SDK就是Java API
C. Appletviewer.exe可利用jar选项运行Jar文件
D.能被Appletviewer成功运行的java class文件必须有main()方法
答案:BCD
三、判断题
请将每空的正确答案写在答题纸上,答在试卷上不得分。
(1) Java程序中的起始类名称必须与存放该类的文件名相同。(对)
(2) Unicode是用16位来表示一个字的。(对)
(3) 原生类中的数据类型均可任意转换。(对)
三、填空题
请将每空的正确答案写在答题纸上【l】至【25】序号的横线上,答在试卷上不得分。 (l)某二叉树中度为2的结点有18个,则该二叉树中有【1】 二叉树的终端结点(叶子结点)数等于双分支结点数加1。
(2)在面向对象方法中,类的实例称为【2】
(3)诊断和改正程序中错误的工作通常称为【3】
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】
(5)Java 源文件中最多只能有一个【5】 public 类, 其他类的个数不限。
(6)线程在生命周期中要经历5中状态,分别是新建状态(准备)、可运行状态(就绪)、运行状态(运行)。【6】 暂停(阻塞) 状态和终止状态(死亡)。
(7)FileInputStream 是字节流;BufferedWriter是字符流, ObjectOutputStream是 【7】 对象序列化流
(8)当使用Thread t = new Thread(r)创建一个线程时,表达式r instance of Thread 的值为【8】 false 。 r instanceOf Runnable
1.抽象类和接口的区别?
抽象类:
1)抽象方法,只有行为的概念,没有具体的行为实现。使用abstract
关键字修饰,没有方法体。子类必须重写这些抽象方法。
2)包含抽象方法的类,一定是抽象类。
3)抽象类只能被继承,一个类只能继承一个抽象类。
接口:
1)全部的方法都是抽象方法,属型都是常量
2)不能实例化,可以定义变量。 3)接口变量可以引用具体实现类的实例 4)接口只能被实现,一个具体类实现接口,必须实现全部的抽象方法 5)接口之间可以多实现 6)一个具体类可以实现多个接口,实现多继承现象
2.列举你所知道的线程同步的方法:
1)wait():让线程等待。将线程存储到一个线程池中。
2)notify():唤醒被等待的线程。通常都唤醒线程池中的第一个。让被唤醒的线程处于临时阻塞状态。
3)notifyAll(): 唤醒所有的等待线程。将线程池中的所有线程都唤醒。
3.equals()方法和“==”操作符的区别是什
么?重写equals()方法的时候,我们还需要重写哪些方法?为什么?
“==”比较的是一个对象在内存中的地址值,栈中的内容是否相同
equals()是针对引用的,比较的是引用类型的内容一样不一样,堆中的内容是否相同
重写equals()方法的时候,需重写hashcode方法,这样比较的时候,比较的是两个对象的hash值,不同对象的hash值不同。
7.写一个函数计算但参数为n(n很大)时
的值1-2+3-4+5-6+7„„+n。(提示:考虑程序执行效率)
private static void jisuan(int n) {
int sum=0;
if(n%2==0){
sum=-(n/2);
(11)简述String和StringBuffer、ArrayList和LinkedList、HashMap和HashTable的特点及区别。
答:String 对象的长度一旦定义就固定就不可以改变,对于已经存在的String对象的修改都是创建一个新的对象,然后把新的值存进去,String类不能被继承。StringBuffer是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象。另外StringBuffer还是一个线程安全的类。
ArrayList是实现了基于动态数组的数据结构用于,LinkedList基于连表的数据结构,二者都可以存储对象的引用。对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须
} System.out.println(""+sum); }else{ sum=-(n-1)/2+n; System.out.println(""+sum); }
为之提供外同步。
点击下页还有更多>>>javaweb常见面试题及参考答案#p#副标题#e#
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value 求质数的多种优化方式
答:一般我们求质数时都会去计算小于某一个数N的质数而不会不加限定,现在我们以求小于N的质数来说一说优化方式。在我们求质数的过程中一般会用到两种方法试除法和筛选法两种,现在下来说一下试除法:
①.判断小于N的数X是否是质数,就是从2一直尝试到X-1,这种做法效率最差,并不可取----->②如果X是质数,那么它如果不能被小于X/2的数整除即可,这样算法效率提高一些---->③除了2以外,所有的质数都只能是奇数,所以我们可以将数X先试除2,然后尝试从3一直到X/2的所有奇数----->④其实判断一个数是否是质数,只需判断一个数能不能被除了1
----->⑤最后,我们可以利用前面求出来的质数来判断,我们只需判断X能不能
再说筛选法:对于使用筛选法的优化主要是从空间上考虑
①定义一个容器,将数据放入容器中,然后遍历其中的数据,将是合数的数据删除,最后剩余的就是质数了------>②我们可以定义一个布尔类型的数组容器,将其中的值都赋值为true,在筛选的过程中将不是质数的数作为数组的下标将对应元素的值改为false,最后取出值为true的元素的下标即可----->③构造定长的byte数组,数组的每个byte存储8个布尔值,这样性能是不是又有了提
(14) 简述几种排序方式(至少四种,可以从以下各个方面来比较这几种算法,例如从时间复杂度和空间复杂度)
高呢。冒泡排序:(Bubble Sort)冒泡排序方法是最简单的排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。
插入排序(Insertion Sort)插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L插入L[1..i-1]的适当位置,使得L[1..i]又是排好序的序列。要达到这个目的,我们可以用顺序比较的方法。首
先比较L和L[i-1],如果L[i-1]≤ L,则L[1..i]已排好序,第i遍处理就结束了;否则交换L与L[i-1]的位置,继续比较L[i-1]和L[i-2],直到找到某一个位置j(1≤j≤i-1),使得L[j] ≤L[j+1]时为止。
选择排序(Selection Sort)选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第 i 遍处理是将[i..n]中最小者与位置 i 交换位置。这样,经过 i 遍处理之后,前 i 个记录的位置已经是正确的了。
快速排序(Quick Sort)快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少
1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。
一、专业知识
1、a0=1、a1=1、a2=a1+a0、a3=a2+a1,以
此类推,请写代码用递归算出a30?
3、简述值类型和引用类型的区别
值类型包括简单 类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等
他们两在内存中存储的方式不同,值类型以栈的方式存储的,引用类型以堆的方式;前者是真实的存储空间,后者只是存储地址的引用!
4、简述类中的静态成员和非静态成员的区别
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问。不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问。一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。
5、什么是单例?
一个类中只有一个实例并且自行化向整个系统提供这个实例叫单例
下面程序段的输出结果是:
Void complicatedex(){
int x=20,y=30;
boolean b; b=x>50&&y>60||x>50&&y<-6||x<-50&&y>60||x<-50&&y<-60; system.out.println(b);}
结果为:fasle
super()和this()的区别
Super()指父类的无参构造方法,this()指当前类的无参构造方法,两者都必须写在构造方法的第一句
2、Java中public,private,protected,和默认
的区别
a、private修饰词,表示成员是私有的,只有自身可以访问;
b、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
c、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;
d、public修饰词,表示成员是公开的,所有其他类都可以访问;
3、描述一下java的事件委托机制和垃圾回
收机制
java事件委托机制:一个源产生一个事件时,把他送到一个或多个监听器那里,在这种机制种,监听器只是等待,一旦收到事件,处理事件并返回;
Java垃圾回收:是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用,以免造成内存泄露。
什么是java序列化,如何事件java序列化 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
public class Cat implements Serializable {}„„
Try{FileOutputStream fos = new FileOutputStream("catDemo.out"); ObjectOutputStream oos = new ObjectOutputStream(fos);
System.out.println(" 1> " + cat.getName());
cat.setName("My Cat");
oos.writeObject(cat);
oos.close();
}catch(Exception e){„}„„
overload和overrride的区别。Overloaded
的方法和是否可以改变返回值类型
override(重写,覆盖)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载,过载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
Overloaded的方法不能改变返回值类型
final类有什么特点
该类不能被继承
写出下面代码的输出结果
Package test;
Public class OuterClass{
Private class InterClass{
Public InterClass{
System.out.println(“interClass create”);}}
Public OuterClass(){
InterClass ic= new InterClass();
System.out.println(“outerclass create”);}
Public static void main(String[] args){
OuterClass oc=new OuterClass();}}
输出:
interClass create
Outerclass create
如何格式化日期
java日期的格式话主要用的是SimpleDateFormat df = new SimpleDateFormat();
ArrayList Vector LinkedList 的存储性
能好特性,HashMap和Hashtable的区别
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList
使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。
2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。
4.HashTable使用Enumeration,HashMap使用Iterator。
String是基本数据类型吗?
不是
多线程有几种实现方式,同步有几种实现方
式,stop()和suspend()方法为什么不推荐使用
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify"
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。 调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复 运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成
死锁。所以不应该使用suspend(),而应在自己的 Thread类中置入一个标志,
1.请阐述一下你对Java多线程中同步的几
种使用方式,区别,以及其重要性。
同步有两种实现方式
1.同步方法
2.同步代码块
多线程的同步时为了能够保证关键数据在单位时间能只能有一个线程操作,保证数据的同步性,安全性
2.final ,finally , finalize 的区别。
Final 有最终的不可改变的意思,可以用来修饰基本数据使之成为常
量,该常量只能在编译期进行修改 。
当修饰对象时,则该对象引用不能改变,但该对象本身可以做修改。 当修饰方法时,表示该方法在被继承时不能被修改,或覆盖
当修饰类时,表示该类不会别别的类继承
Finally 用于在Try-catch-finally语句中 finally 中的代码块时必须执行的
finalize 当某个对象要被当做垃圾回收时,会调用finalize()方法,该方法用于检查对象不被运行状态的对象引用或间接地引用
sleep() 和wait()有什么区别?
Sleep()是线程中的一个方法,该方法用于控制自身线程的流程,当
执行sleep()方法睡眠时保持对象锁。
Wait()方法是object类中的一个方法,该方法用于让一个线程处于
等待状态并释放对象锁,当该线程想要再次执行时需要调用notity
方法唤醒此线程
4. abstact 的method是否可同时是static,
是否可同时是native,是否可同时是synchronized ?
不可以
5当一个线程进入一个对象的Synchronized
方法后,其他线程是否可进入此对象的其他方法
可以去访问非Synchronized方法。
6.当一个对象被当做参数传递到一个方法
后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
值传递
7.创建一个class对象有几种方法?分别是
什么?
有三种:
1. Class c=Class.for(“java.lang.String”);
2. String str=new Stirng();
Class c=Str.getClass();
3.Class c=String.Class;
9.如何获取一个目录下有多少个文件?
File f=new File(“D:https://”);
Int count=f.list().length;
10.请写出下列代码的输出结果:
FatherClass Create
ChildClass Create
13.当一个对象不再被使用时,如何才能从内
存中消失?
将该对象引用值为空
点击下页还有更多>>>javaweb常见面试题及参考答案#p#副标题#e#
14.请写一个整数组成的矩阵转置程序,及行
变成列,列变成行?
int[][] transponse(int[][] t);
public int[][] transponse(int[][] t){
int [][] f=new int[t[0].length][t.length];
for(int i=0;i
int index=0;
index++;
for(int x=0;i
int m=0;
m++;
f[m][index]=t[i][x];}}
Return f;
1.下列哪些语句关于内存回收的说明是正确的?( b )
A,程序员必须创建一个线程来释放内存
B,内存回收程序负责释放无用内存
C,内存回收程序允许程序员直接释放内存
D,内存回收程序可以在指定的时间释放内存对象
2.下面异常是属于 Runtime Exception 的是( abcd )(多选)
A, ArithmeticException
B, IllegalArgumentException
C, NullPointerException
D, BufferUnderflowException
3.Math.round(11.5)等于多小().Math.round(-11.5)等于多小().( c )
A 11,-11 B 11,-12 C 12,-11 D 12,-12
4.下列程序段的输出结果是:(b )
Void complicatedexpression_r(){
int x=20,y=30;
boolean b;
b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b);
A,ture B,false C,1 D,011.activity
5.以下程序的运行结果(B )https://[-128~127]从对象池取,超了后新建对象 Integer a = 34556;
Integer b =34556;
If(a==b){
System.out.println(“Equal”);}else{
System.out.println(“Not equal”);}
A.Equal B.Not equal C.无输出 D.编译错误
6.以下程序的运行结果是(B )
public class test{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(“,”);
System.out.print(100%3.0);}}
A.1,1 B.1,1.0 C.1.0,1 D1.0,1.0
7.Java语言中字符串 “学Java” 所占的内存空间是( B)
A.5个字节 B.6个字节 C.7个字节 D.10个字节
Math.round(11.5)等于多少()。Math.round(-11.5)等于多少?(C)
A.11,-11 B.11,-12 C. 12.-11 D.12,-12
8.下列程序段的输出结果是:(B)
void complicatedexpression_r(){
int x=20,y=30;
boolean b;
b=x>50&&y>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;
System.out.println(b);}
A. true B.false C.1 D.0
代码段如下,选项中描述正确的是 A
static int ternary(int s){
int i=s;
return i < 10 ? i * 100 : i * 10 ;}
A 这是个静态方法,不需要实例化就可以被调用
B 返回值是方法临时变量的值
C 返回值等于i * 10
D 返回值等于i * 100
9.如下描述正确的是 AD
A 一个java中只能有一个class是public的
B 如果一个类的构造方法是私有的,那么实例化此类就需要有一个非私有的方法
C protected的方法无法被子类访问
D abstract类不可以直接实例化
10.关于final关键字,正确的是 ABCDE
A. 使用final关键字,是出于设计与效率的考量
B 使用final关键字修饰属性,句柄指向的基础类型是一个常量
C final关键字修饰属性,句柄指向一个对象,则对象不可以改变
D final关键字修饰方法,则此方法不允许覆盖
E final 关键字修饰方法,则此方法不允许重载
11.如下描述正确的是 ABCD
A HashMap使用键值对描述数据
B List和Set都是接口
C List的实现类存储数据允许重复
D Set的实现类存储数据是无序的
E List的实现类存储数据是无序的
12.如下描述正确的是 AD
A 继承Thread类,可以创建一个线程
B run()方法中定义循环部分,并指出循环终结条件
C 每个对象默认都包含了一把锁
D 多线程竞争临界资源,可能会导致死锁
13下面描述正确的是 ABCD
A。 MVC涉及模式中,servlet实现controller功能
B applet浏览器运行的java小程序
C javabean 用于对应数据库中的数据表
D SSH(Struts,Spring ,Hibernate)Spring进行流程控制,Struts进行业务流转,Hibernate进行数据库操作的封装
14.下面说法正确的是 ABD
A 用new 关键字实例化接口,必须实现接口中的所有抽象方法
B 接口中不可以定义私有方法
C 接口中可以定义私有属性
D 类可以实现多个接口
15.下面说法正确的是 ABC
A 调用equal()方法所实现的功能,取决于当前类及其继承树中对此方法的定义。
B java不允许使用者重载操作符
C java中,操作符+针对字符串操作时把字符串相连接的意思。
D java 允许操作符重载
16. UML中哪些图表示系统行为 AE
A.状态图 B.用例图 C.协作图 D.类图 E.活动图 F.时序图
17.如下程序段,正确的是 BD
A abstract class Something {private abstract String doSomething();}
B class Something {Int i;
public void doSomething(){
System.out.println(“i+”+i)}}
C . public class Something{
public static void main (String [] args){
Something s = new Something();
System.out.println(“s.doSomething() returns :”+doSomething());}
public String doSomething(){return “Do something……”}; }
D. abstract class Name {
Private String name ;
Public abstract int test();}
18.下面的java程序编译运行结果是 C
interface A {int x = 0;}
Class B {int x = 1;}
Class C extends B implements A {
Public void pX () {system.out.println(super.x);}
Public static void main (String [] args ){new C ().Px();} }
A 产生运行期错误
B 产生编译期错误
C 程序运行,输出结果为1
D 存续运行,输出结果为0
看过“javaweb常见面试题及参考答案”
浏览量:2
下载量:0
时间:
2023年Java经典面试题及答案(200道)
Java面试题涵盖的范围非常广泛,根据不同的岗位和公司要求,面试题可能会有所不同。为了让面试者能顺利应对面试官的问题,下面小编为大家收集整理了关于2023年Java经典面试题及答案(200道)的相关内容,希望对大家有所帮助!
简历:简历的编写要真实可信,突出个人亮点,格式无误,排版干净,控制简历页数。
面试准备:了解公司的基本情况、业务范围、市场占比等。
技术准备:熟悉Java开发岗位所需知识,包括Java基础、JVM、多线程、Mysql、Spring、Spring Boot、Spring Cloud等。
非技术准备:了解非技术性方面的问题,如知识结构、沟通能力、学习能力等。
浏览量:8
下载量:0
时间:
Java经典面试题200道(带答案)
Java面试题涵盖的范围非常广泛,根据不同的岗位和公司要求,面试题可能会有所不同。为了让面试者能顺利应对面试官的问题,下面小编为大家收集整理了关于java常见面试题的相关内容,希望对大家有所帮助!
1.简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2.面向对象
Java是一个面向对象的语言。对程序员来说,这意味着要注意其中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
3.分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
4.编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
5.稳健性
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
浏览量:4
下载量:0
时间:
Java经典面试题及答案(面试必看)
Java面试题涵盖的范围非常广泛,根据不同的岗位和公司要求,面试题可能会有所不同。为了让面试者能顺利应对面试官的问题,下面小编为大家收集整理了关于Java经典面试题及答案的相关内容,希望对大家有所帮助!
Java是一门面向对象的编程语言,其主要用途有以下几个方向:
大数据领域、
Hadoop以及其他大数据处理技术普遍用的都是Java,当然其他语言也有用到,基于Java?的?HBase和Accumulo以及ElasticSearchas。但Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java依然有潜力占据一部分。
Android应用?
如果你想知道Java应用在哪里,打开你的安卓手机或者任何的App,它们完全是用有着谷歌Android API的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。顺便一提,虽然我们之前的文章提到的关于安卓App是如何工作的,即安卓使用了不同的Java虚拟机和不同的封装,但是代码仍然是用Java编写的。
网站领域
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用Spring MVC,Struts 2.0和类似的框架开发出来的。甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在java之上的。
浏览量:3
下载量:0
时间:
清楚农业银行的面试最常出现哪些面试题对于准备参加农业银行面试的求职者来说,是有帮助的。下面是读文网小编带来的关于农业银行最常见的面试题的内容,欢迎阅读!
1你的最大成功 你认为比较失败的事是什么,当时我回答完了后他还追问了句你为什么觉得那是最成功的事情?
2你为什么选择我们这,而不是回你家乡?
3你是怎么融入一个你陌生的环境、
4 你是怎么样跟你年长的人交往的?
5 举个例:有什么琐事你平时坚持下来的?
6 你的朋友给你有什么建议
7.介绍一下自己的大学经历和实践经历
8.讲一件自己做的重要并且紧急的事情,我讲完了,还问我所叙述的事情过程中发生的事件我是如何处理的
9.讲一下自己人认为处理方式比别人更有效的事。
10.讲一件事说说你是如何处理同学之间的矛盾,我讲完,又问我这主意是你自己出的吗?
11.讲一下从小或者大学里最遗憾的事情
12、我国的收入分配制度的历史沿革和现状
13、按劳分配是否公平?马克思说过即使劳动能力、劳动绩效和劳动态度相同,按劳分配也是不公平的,为什么?
14、劳动争议处理的程序是什么?劳动仲裁是否具有强制性?
15、岗位工资和绩效工资的差别?
16、基尼系数和恩格儿系数的含义?
17、坦率的讲,你在学校的人缘怎么样?
18、有什么爱好,这些爱好跟你的专业有什么关系?
19、你如何在保持优秀的学习成绩的同时还能有那么多的实习经历?
20、如何平衡个人爱好和学习任务之间的时间分配?面试技巧
21、你为什么没有入党?是你不优秀还是入党的程序标准有问题?
点击下页还有更多>>>农业银行面试技巧#p#副标题#e#
浏览量:3
下载量:0
时间:
在护士的公开招聘过程中,必不可少的一个重要环节就是回答面试题。下面是由读文网小编分享的公开招聘护士常见面试题,希望对你有用。
国家正在大力发展社区卫生,我市卫生局决定,从今年起,所有新录用医务人员,必须到乡镇社区卫生院服务5年,你认为在社区你的作用大还是在市级医院作用大?
首先这道题是对你能够忍受护士这个职业吃苦耐劳特点的考验,护士这个职业的职业要求就是能够有耐心,有信心,并且能够善待每一个你服务的病人。去基层锻炼,是国家推出的政策,在这种大政策的环境下,作为一名医务工作者,应该无条件的服从,况且在基层的锻炼过程中个,你会收获到在市级医院所不能学到的东西,这其中包括你处理突发事件的能力和与不同基层的人沟通的能力。
浏览量:2
下载量:0
时间:
面试题在董事长秘书求职者的求职面试过程中至关重要。下面是读文网小编为大家带来的董事长秘书常见面试题,相信对你会有帮助的。
我是***,是***大学涉外文秘专业的即将毕业一名学生,本人乐观大方、坚强自信、勤奋好学,具有很强的团队精神和责任心。
三年来,在老师的教育及个人的努力下,我具备了扎实的专业基础知识,掌握了秘书写作、秘书语言与交际、公共关系、办公自动化、秘书学等专业课程。同时也拥有一定的分析和设计能力。通过在校期间的试验实习和课程设计的训练我具备了较强的动手能力。在课外时间里我阅读了大量的书籍。不但充实了自己,也培养了自己多方面的技能。
除了在学好本专业的知识外,我对计算机知识进行了比较系统地学习和熟练地应用学习过电脑操作技术,能适应现代化办公的工作需要。在校学习期间,注意思想品德修养,严格要求自己,积极参加社会实践活动。在这些活动中,我不仅锻炼了自己的组织能力,更加强健了自己的身体素质。
三年的学习中,我在工作上不仅锻炼了自己的工作能力,组织能力,更在老师的教育下学习懂得了如何做人。坚强自信的我,会勇敢的迎接未来激烈的挑战。真诚希望成为其中一员。我深信会用自己勤勉的汗水与同仁一道为贵公司的锦绣前程奋斗不息,奉献我的年轻的热忱和才智,并且在实践中不断学习、进步!
看过“董事长秘书常见面试题”
浏览量:3
下载量:0
时间:
回答面试题目是java个人求职者在求职面试过程中必须完成的一个重要环节,下面是读文网小编为大家带来的最新的java面试题目及参考答案,相信对你会有帮助的。
我叫xxx,今年21岁,毕业于xx解放军信息工程大学计算机科学与技术专业,拥有扎实的core java基础,良好的编程风格;熟悉jsp+servlet+javabean模式的web开发;熟悉struts,hibernate,spring等开源框架,了解ejb; 熟悉tomcat,jboss服务器等,熟悉基于linux及unix环境下的软件开发;
在校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。
请各位考官多多指教,谢谢!
看过“最新的java面试题目及参考答案”
浏览量:2
下载量:0
时间:
回答面试题是java程序员个人求职者在求职面试过程中必须完成的环节。下面是读文网小编为大家带来的2017java程序员面试题,相信对你会有帮助的。
一、基本数据结构
1. 队列和栈的区别和常用操作
2. 队列的实现方式(单向链表、双向链表)
3. 基于队列的算法(主要是排序算法:归并排序,二分法插入排序可以做重点(这两个排序通常会被用来做动态有序队列的维护)。至于快速排序,基本上都用现成的程序库,不需要掌握)
4. 图的基本概念 (有向图,无向图)
5. 图的基本表达方法(邻接矩阵,链接表)
6. 图的基本算法
a) 最短路径Dijstra
b) 最小生成树 Prim
7. 树的基本概念(二叉树,平衡树,森林)
8. 树的基本表达方法
9. 树的相关算法
a) 遍历算法(深度优先、广度优先)构
b) 平衡树(B树)
c) 其他算法(Haffman树)
数据库:资料下载
点击下页还有更多>>>2017java程序员面试知识点
#p#副标题#e#
二、基本概念
1. 数据库、表、视图、Sequence、Index
2. 数据类型的区别(Char 和 varchar的区别)
3. 关系 (外键、主键。1:1, 1:n,n:n关系在数据库中的实现)
4. 范式
三、应用
1. 基本Sql语言
2. Outer join (left, right, full)和 inner join
3. Transaction概念
4. Transaction和Connection的关系
四、高级应用
1. DAO模型
2. Connection Pool
3. OR Mapping Tools (Hibernate)
五、基本概念
1. 语言基本概念
a) Abstract,static,和final修饰符
2. 各种不同类型的类型
a) Normal Class
b) Abstract Class
c) Interface
3. 特殊类型
a) Exception (unchecked 和 checked)
b) System
c) Classloader
d) Thread + Runnable
e) Serializable
f) Comparable
g) Cloneable
h) Object
HashCode ()
Equals ()
Clone ()
ToString ()
4. 基本Pattern的实现
a) Singleton
b) Utility class
5. 对象的基本概念
a) Create a object
b) Lifecycle of object
c) Object reference 和Object的关系
存储位置(Heap和Stack)
对象赋值和修改
二、中级概念
1. String的基本操作方法
2. Java. collections中的基本对象
a) Collection
b) List
c) Set
d) Map
e) 两个Utils类:Collections和Arrays
3. Concurrency的基本概念
a) synchronized
b) Thread 和 runnable的基本概念
c) Concurrency (JDK 1.5)的基本使用方法
ReadWriteLock
Thread pool
d) Dead lock的原因和诊断方法
4. 第三方Utils库的使用方法
a) Log4j
b) Commons-xxx
5. Heap和Garbage Collection
a) Object reuse (Object pool, 对基本类型对象,使用Value Of代替new)
b) Memory leak的原因和诊断方法
六、高级概念
1. J2EE/EJB
a) Stateless / Stateful Session Bean
b) Servlet/MVC/struts
c) Webservice (WSDL/SOAP/AXIS/X Fire)
2. Spring framework
a) 基本概念(IoC, AOP)
3. Hibernate
看过“2017java程序员面试题”
浏览量:2
下载量:0
时间:
面试题是面试官为了考查你的成绩而出的试题。下面是读文网小编为大家带来的2016 java面试题,相信对你会有帮助的。
一、Java基础
第01题:
作用域public,private,protected,以及不写时的区别
第02题:
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
第03题:
Static Nested Class 和 Inner Class的不同
第04题:
&和&&的区别
第05题:
Collection 和 Collections的区别
第06题:
什么时候用assert
第07题:
String s = new String("xyz");创建了几个String Object
第08题:
Math.round(11.5)等於多少? Math.round(-11.5)等於多少
第09题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错
第10题:
Java有没有goto
第11题:
数组有没有length()这个方法? String有没有length()这个方法
第12题:
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
第13题:
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
第14题:
给我一个你最常见到的runtime exception
第15题:
error和exception有什么区别
第16题:
List, Set, Map是否继承自Collection接口
第17题:
abstract class和interface有什么区别
第18题:
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
第19题:
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
第20题:
构造器Constructor是否可被override
第21题:
是否可以继承String类
第22题:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
第23题:
用最有效率的方法算出2乘以8等於几
第24题:
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
第25题:
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
第26题:
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
第27题:
ArrayList和Vector的区别,HashMap和Hashtable的区别
第28题:
char型变量中能不能存贮一个中文汉字?为什么?
第29题:
GC是什么? 为什么要有GC
第30题:
float型float f=3.4是否正确?
第31题:
介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
第32题:
抽象类与接口?
第33题:
STRING与STRINGBUFFER的区别。
第34题:
谈谈final, finally, finalize的区别
第35题:
面向对象的特征有哪些方面
第36题:
String是最基本的数据类型吗
第37题:
int 和 Integer 有什么区别
第38题:
运行时异常与一般异常有何异同
第39题:
说出ArrayList,Vector, LinkedList的存储性能和特性
第40题:
HashMap和Hashtable的区别
第41题:
heap和stack有什么区别
第42题:
Java的接口和C++的虚类的相同和不同处
第43题:
Java中的异常处理机制的简单原理和应用
第44题:
垃圾回收的优点和原理。并考虑2种回收机制
第45题:
你所知道的集合类都有哪些?主要方法?
第46题:
描述一下JVM加载class文件的原理机制?
第47题:
排序都有哪几种方法?请列举
第48题:
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
第49题:
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
第50题:
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
第51题:
java中会存在内存泄漏吗,请简单描述。
第52题:
java中实现多态的机制是什么?
第53题:
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
第54题:
静态变量和实例变量的区别?
第55题:
什么是java序列化,如何实现java序列化?
第56题:
是否可以从一个static方法内部发出对非static方法的调用?
第57题:
写clone()方法时,通常都有一行代码,是什么?
第58题:
在JAVA中,如何跳出当前的多重嵌套循环?
第59题:
List、Map、Set三个接口,存取元素时,各有什么特点?
第60题:
说出一些常用的类,包,接口,请各举5个
第61题:
写一个Singleton出来。
第62题:
启动一个线程是用run()还是start()?
第63题:
java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
第64题:
sleep() 和 wait() 有什么区别?
第65题:
同步和异步有何异同,在什么情况下分别使用他们?举例说明。
第66题:
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第67题:
请说出你所知道的线程同步的方法。
第68题:
多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
第69题:
线程的基本概念、线程的基本状态以及状态之间的关系
第70题:
简述synchronized和java.util.concurrent.locks.Lock的异同 ?
第71题:
java中会存在内存泄漏吗,请简单描述
第72题:
Object的方法
第73题:
文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别
第74题:
什么是进程和线程?两者的区别是什么?
第75题:
CORBA是什么?用途是什么?
第76题:
描述一下JVM加载class文件的原理机制?
第77题:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
第78题:
写一个方法,将Date类型转为String类型/将String类型转为Date类型
第79题:
写一个排序方法,任意/快速查找
第80题:
写一个方法将excel中的数据导入到程序中
第81题:
String s = new String("xyz");创建了几个String Object?
第82题:
用最有效率的方法算出2乘以8等于几?
第83题:
有a,b两个变量,不用第三个变量,交换a,b的值
第84题:
描述一下JVM 加载class 文件的原理机制?
第85题:
char 型变量中能不能存贮一个中文汉字?为什么?
#p#副标题#e#
二、JavaWeb
第01题:
forward 和redirect的区别
第02题:
jsp有哪些内置对象?作用分别是什么?
第03题:
jsp有哪些动作?作用分别是什么?
第04题:
JSP中动态INCLUDE与静态INCLUDE的区别?
第05题:
两种跳转方式分别是什么?有什么区别?
第06题:
说一说Servlet的生命周期?
第07题:
Servlet的基本架构
第08题:
什么情况下调用doGet()和doPost()?
第09题:
页面间对象传递的方法
第10题:
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
第11题:
Request对象的主要方法
第12题:
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
第13题:
Servlet执行时一般实现哪几个方法?
第14题:
Struts1.x 中 DispatchAction 怎么用?有Action 有哪些区别?
第15题:
MVC的各个部分都有那些技术来实现?如何实现
第16题:
开发中都用到了那些设计模式?用在什么场合
第17题
请你谈谈SSH整合
第18题:
Hibernate外键关联,做多表链接查询出的字段如果没有实体bean与之相对应,该如何解决?
第19题:
Hibernate的sessionfactory和session的区别是什么?如何处理session线程不安全问题?
第20题:
Hibernate如何实现动态查询?DetachedCriteria与Criteria的区别是什么?
第21题:
写一段Jdbc连Oracle的程序,并实现数据查询.
第22题:
Struts优点与缺点
第23题:
Struts提供了几个标签库?都是什么标签库?
第24题:
Tiles框架是什么?
第25题:
Hibernate中的Session. load()和Session.get()的区别
第26题:
Spring和Struts的区别?
第27题:
什么是aop,aop的作用是什么?
第28题:
aop中的关键名词有些那些,相互关系是什么?
第29题:
依赖注入的方式有几种,各是什么?
第30题:
Hibernate中的update()和saveOrUpdate()的区别
第31题:
Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理
第32题:
使用Spring的好处是什么
第33题:
Hibernate是如何延迟加载?
第34题:
说下Hibernate的缓存机制
第35题:
Hibernate的查询方式
第36题:
如何优化Hibernate?
第37题:
HttpSession session = request.getSession()
与HttpSession session = request.getSession(true)的区别?
第38题:
Class.forName的作用?为什么要用?
第39题:
Jdo是什么?
第40题:
说出数据连接池的工作机制是什么?列举几个常用的数据连接池。
第41题:
JDBC如何调用数据连接池
第42题:
xml有哪些解析技术?区别是什么?
第43题:
你在项目中用到了xml技术的哪些方面?如何实现的?
第44题:
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
第45题:
请用编程语言写一个排列组合的算法。可以实现一个简单的算法:存在N个数组,输出在每个数组取一个元素的排列组合结果。假设:
数组A=[X,Y,Z],数组B=[1,2]
组合的结果:
X1,X2,Y1,Y2,Z1,Z2
排列组合的结果:
X1,X2,Y1,Y2,Z1,Z2,1X,1Y,1Z,2X,2Y,2Z
要求程序可以适应N为任意数和每个数组长度不同的情况(假设内存足够大,程序可以不考虑效率)。
第46题:
请描述HTTP交互中Session和Cookies的关系以及二者的区别
第47题:
请用流程图或文字描述Servlet的开发和部署过程,包括从java类的编码到可以通过IE访问
第48题:
多人访问网站,如何减轻服务器压力(程序实现,考虑Hibernet中的方法)
第49题:
多个人访问数据序,一个对数据序进行了修改,而另一个人已在修改前查询到页面,当点击打印时,该怎样做,才能能到修改后的最新数据。
第50题:
MVC是什么?
第51题:
CVS是什么?
第52题:
Struts2和Spring集成的时候,是否可以把Action设置成singleton模式,请简述理由
第53题:
简要叙述Hibernate一级缓存和二级缓存的作用
第54题:
什么是singleton模式和DAO模式?
第55题:
简述Spring中DI、IoC和AOP的含义。
第56题:
请比较Struts1.x和Struts2在多模块开发方面的差异
#p#副标题#e#
三、JavaScrpt和Css
第01题:
编写函数,用于过滤一个数组内重复的元素,并用这些元素重构一个新数组,新数组内也不能有重复元素。
第02题:
javascript是不是面向对象的语言?如果是,怎么实现继承?
第03题:
如何获取表单
第04题:
在JavaScript 中定时调用函数foo()如何写?
第05题:
var a=”10” ; var b=”20”; var c=”10”; var d=10 ;alert(a=b) ; alert(a==b); alert(c==d); alert(a===b);结果是?
第06题:
Var obj =new Object();obj.a=”001”;obj.b=”002”;obj.c=”003”;obj.d=”004”;................... 写一个function遍历obj 对象中的所有的属性对应的值
第07题:
form中的input有哪些类型?各是做什么处理使用的
第08题:
table标签中border,cellpadding;td标签中colspan,rowspan分别起什么作用
第09题:
form中的input可以设置readonly和disable,请问这两项属性有什么区别
第10题:
JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么
第11题:
当点击按钮时,如何实现两个td的值互换?
用javascript实现此功能
第12题:
编写一个方法 求一个字符串的字节长度
第13题:
如何控制alert中的换行
第14题:
解释document.getElementById("ElementID").style.fontSize="1.5em"
第15题:
求y和z 的值是多少?
第16题:
javascript怎样选中一个checkbox,怎样设置它无效?
第17题:
在css中:以下语句各代表什么意思? td{width100%} .td{width100%} #td{width100%}
四、数据库
第01题:
假设tableA为某学校的花名册:a1——学号;a2——姓名;a3——性别;
tableB为各班级花名册:b1——班级号;b2——座位号;b3——姓名;b4——性别; 有同样结构的4张表B1,B2,B3,B4分别代表01,02,03,04级。 1、SQL语句:
请用最简单的操作,使4张表的记录汇总到tableA中。(注:学号=年级号+班级号+座位号)
2、存储过程: 写一个存储根据传入的年级号计算该年级的男女生各自的人数(男女生的参数作为传出参数) 3、函数 新增一个学生时,选择年级和班级号后,自动获取学号(只操作tableA) 4、函数 检查日期的正确性(注意大小月及闰年)
看过“2016 java面试题”
浏览量:2
下载量:0
时间:
面试是很多用人单位遴选求职者的重要方式,当然也是高级java工程师求职者的求职必经环节。下面是读文网小编为大家带来的高级java工程师面试题,相信对你会有帮助的。
尊敬的领导:
您好!我叫xxx,是南京信息工程大学20xx届计算机系软件开发专业的。并获计算机学士学位。从考入大学那天起我一直努力学习,在大学生活中培养了良好的学习习惯,所学的课程包括了从计算机的基础知识到运用等许多方面。
通过对这些知识的学习,我对这个领域的相关知识有了一定程度的理解和掌握。并做了大量的实践,进一步加深了对计算机的认识软件开发人员求职信范文软件开发人员求职信范文。在学好基础知识的同时还注重多方面全面发展,多次参加了学校的各种活动,在实习过程中将理论与实践结合起来,深受学校老师和同学的欢迎。
20XX年初参加了微软认证系统工程师培训,培训科目:WindowsNTTechnology,WindowsNTEnterprise,NetworkingwithTCP/IPonWindowsNT,ⅡS4.WindowsNT。
具备丰富的工作经验,认真踏实负责,且具备优秀的表达能力,曾多次主持对用户和内部的技术讲解和培训,获得用户和公司的一致好评。曾在电子工业部“三金工程展风采展示会”上向来宾讲解CHINAGBN专线集团用户解决方案。
在激烈的人才竞争中,虽然我只是名刚毕业的大学生,也许没有工作经验,但我有颗真挚的心和拼搏进取的精神,愿为贵公司贡献出一分自己的力量,为了更好的掌握知识理论,也为更好地服务贵公司,我现在正努力自学一些更深的理论书,虽然我刚从大学毕业,没有实际的工作经验,但我相信像贵公司那样重能力,重水平,重开拓,有远见的公司,一定把能力,水平与经验同等同视,给新人一个显身手的机会,希望贵公司给我一个机会,能考虑我,我迫切希望早日成为贵公司一员软件开发人员。
浏览量:2
下载量:0
时间:
什么问题是你在面试的时候,经常被问到的呢?下面是读文网小编为大家带来的常见面试题及答案,相信对你会有帮助的。
9、为什么我们要在众多的面试者中选择你?
回答提示:根据我对贵公司的了解,以及我在这份工作上所累积的专业、经验及人脉,相信正是贵公司所找寻的人才。而我在工作态度、EQ上,也有圆融、成熟的一面,和主管、同事都能合作愉快。
分析:别过度吹嘘自己的能力,或信口开河地乱开支票,例如一定会为该公司带来多少钱的业务等,这样很容易给人一种爱说大话、不切实际的感觉。
10、你并非毕业于名牌院校?
回答提示:是否毕业于名牌院校不重要,重要的是有能力完成您交给我的工作,我接受了北大青鸟的职业培训,掌握的技能完全可以胜任贵公司现在工作,而且我比一些名牌院校的应届毕业生的动手能力还要强,我想我更适合贵公司这个职位。
11、你还有什么问题要问吗?
回答提示:企业的这个问题看上去可有可无,其实很关键,企业不喜欢说“没问题”的人,因为其很注重员工的个性和创新能力。企业不喜欢求职者问个人福利之类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?企业将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。
12、如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?
回答提示:①我本意是为公司努力工作,如果造成经济损失,我认为首要的问题是想方设法去弥补或挽回经济损失。如果我无能力负责,希望单位帮助解决。②分清责任,各负其责,如果是我的责任,我甘愿受罚;如果是一个我负责的团队中别人的失误,也不能幸灾乐祸,作为一个团队,需要互相提携共同完成工作,安慰同事并且帮助同事查找原因总结经验。③总结经验教训,一个人的一生不可能不犯错误,重要的是能从自己的或者是别人的错误中吸取经验教训,并在今后的工作中避免发生同类的错误。检讨自己的工作方法、分析问题的深度和力度是否不够,以致出现了本可以避免的错误。
浏览量:2
下载量:0
时间:
做笔试面试题几乎是每个公司选拔java个人求职者的必要程序,对java个人求职者是一种考核形式。下面是读文网小编为大家带来的2017 java笔试面试题,相信对你会有帮助的。
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判断
× ×√√√√×√×√
四写出相应的SQL语句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五简答
可以通过声明和发布来截获自定义异常。
一、在声明部分为声明自定义异常名。
二、在执行部分使用 RAISE 语句显式地发布异常。
三、在相应的异常处理例程中引用已声明的异常。
2(1).抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2).继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性, 新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3).封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
(4). 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
3List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值
4a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类 b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此没有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍
然可以访问初始的Request和Response。
但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。
d、可测性
测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase
提供了一套struts1.2的模拟对象来进行测试。
Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。
点击下页还有更多>>>2017java笔试面试题参考答案
#p#副标题#e#
1. 在工程中加入Struts支持
2. 编辑ApplicationResource.properties文件,在其中加入要使用国际化的信息, 例如: lable.welcome.china=Welcome!!!
3. 创建英文资源文件ApplicationResource_en.properites
4. 创建临时中文资源文件ApplicationResource_temp.properites 例如:
lable.welcom.china=中国欢迎您!
5. 对临时中文资源文件进行编码转换。可以使用myeclipse的插件,也可以在dos下执行: native2ascii -encoding gb2312 ApplicationResource_temp.properties
ApplicationResource_zh_CN.properties
6. 在jsp中加入struts的bean标记库
显示信息:
可以在struts-config.xml文件中定义多个资源包,而每个资源包可使用key属性指定包的名称
6.6form-bean配置:(在配置文件struts-config.xml中):
name: 指定form的名字; type指定form的类型:包名+类名;
action配置:(在配置文件struts-config.xml中)
path=”?”
attribute="?"
input="?"
name="?"
parameter="?"
scope="?"
type="?"
71、hibernate自带的分页机制:获得Session对象后,从Session中获得Query对象。用Query.setFirstResult():设置要显示的第一行数据,
Query.setMaxResults():设置要显示的最后一行数据。
2、不使用hibernate自带的分页,可采用sql语句分页,
如:5:为每页显示的记录,2为当前页: select * top 5 from table where tabId not in (select tabId top (2-1)*5 from table);
8hibernate中一对多配置文件会相应的映射为两张表,并且它们之间的关系是一对多的。
例如:一个student和classes表的关系 。一个学生只能是一个班的,一个班可以有多个学生。
9 1 很少被修改的数据 2 不是很重要的数据,允许出现偶尔并发的数据 3 不会被并发访问
10控制反转IOC AOP
11面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。在切面上声明一个通知(Advice)和切入点(Pointcut); 通知: 是指在切面的某个特定的连接点(代表一个方法的执行。通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。)上执行的动作。通知中定义了要插入的方法。切入点:切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。
a、定义一个事务管理器
b、配置事务特性(相当于声明通知。一般在业务层的类的一些方法上定义事务)
c、配置哪些类的哪些方法需要配置事务(相当于切入点。一般是业务类的方法上)
12Insert 条件谓词 inserting;
Update条件谓词 updating;
Delete 条件谓词 deleting。
13视图是一种Oracle对象,是来自一张或多张表或视图中数据的子集的逻辑表示。
特点:限制对数据库的访问;容易实现数据的复杂的查询;维护数据的独立性;对于相同的数据可以产生不同的视图。
14Primary key 确保非空且唯一;
Foreign key 确保引用完整性;
Unique 确保列或者列的组合中的每个值都是唯一的;
Check 限制每条记录都要满足的条件;
Not null 确保该列不能保存空值。
15两者都带有0个或多个参数,参数可以具有模式。
两者都是PL/SQL语句块的不同形式,都有声明段、可执行段以及异常段。
两者都可以存储在数据库中或在语句块中声明
两者不同的是,过程调用本身是一个PL/SQL语句,而函数总是向调用块返回一个值。
16 使用%rowtype属性声明记录变量的优点是什么?
可以不必知道数据库中列的数量和类型。
在运行期间,数据库中列的数量和类型可能发生变化。
在SELECT语句中使用该属性可以有效地检索表中的行。
六编程
1SET serveroutput ON;
Declare
v_empno emp.empno%type:=’&员工编号’;
v_ename emp.ename%type;
v_deptno emp.deptno%type;
v_mgr emp.mgr%type;
Begin
SELECT ename,deptno,mgr INTO v_ename,v_deptno,v_mgr from emp WHERE empno=v_empno;
DBMS_OUTPUT.PUT_LINE(‘员工’||v_ename||’在部门’||’v_deptno’||’主管’||v_mgr);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘没有此员工’);
END;
2Declare
Cursor emp_cur(v_job emp.job%TYPE) is
Select empno,ename,hiredate from emp where job=v_job;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_hiredate emp.hiredate%TYPE;
BEGIN
OPEN emp_cur(upper(‘&job’));
LOOP
Fetch emp_cur INTO v_empno,v_ename,v_hiredate;
Exit when emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(‘编号 姓名 工资’);
DBMS_OUTPUT.PUT_LINE(v_empno||v_ename||v_hiredate);
END LOOP;
CLOSE emp_cur;
END;
Declare
Cursor emp_cur(v_job emp.job%TYPE) is
Select empno,ename,hiredate from emp where job=v_job;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_hiredate emp.hiredate%TYPE;
BEGIN
FOR i IN emp_cur(upper(‘&job’)) LOOP
v_empno:=i.empno;
v_ename:=i. ename;
v_hiredate:=i. hiredate;
DBMS_OUTPUT.PUT_LINE(‘编号 姓名 工资’);
DBMS_OUTPUT.PUT_LINE(v_empno||v_ename||v_hiredate);
END LOOP;
END;
3CREATE OR REPLACE FUNCTION f_emp(f_job emp.job%TYPE)
RETURN BOOLEAN
Is
v_job emp.job%TYPE;
BEGIN
SELECT DISTINCT job INTO v_job FROM emp WHERE job=f_job;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END f_emp;
Begin
If f_emp(upper(‘&job’)) THEN
DBMS_OUTPUT.PUT_LINE(‘日’);
ELSE
DBMS_OUTPUT.PUT_LINE(‘插’);
END IF;
END;
4CREATE OR REPLACE TRIGGER t_emp_sal
BEFORE INSERT OR UPDATE ON emp
Begin
IF :new.sal>5000 THEN
RAISE_APPLICATIONG_ERROR(‘ERROR!!’);
ELSE
INSERT int up_emp VALUES(empno,sal,sysdate);
END IF;
END;
5很奇怪,结果是Test
这属于脑筋急转弯的题目,在一个qq群有个网友正好问过这个问题,我觉得挺有趣,就研究了一下,没想到今天还被你面到了,哈哈。
在test方法中,直接调用getClass().getName()方法,返回的是Test类名
由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在
test方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName()方法,所以,super.getClass().getName()方法返回的也应该是Test。
如果想得到父类的名称,应该用如下代码:
getClass().getSuperClass().getName();
6返回的结果是2。
我可以通过下面一个例子程序来帮助我解释这个答案,从下面例子的运行结果中可以发现,try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。
7最终的程序代码如下:
public class ThreadTest {} private class Business { boolean bShouldSub = true;https://这里相当于定义了控制该谁执行的一个信号灯 public synchronized void MainThread(int i) { if(bShouldSub) try { this.wait(); https:// TODO Auto-generated catch block } catch (InterruptedException e) { ).start(); for(int i=0;i<50;i++) { business.MainThread(i); } } public void run() { } for(int i=0;i<50;i++) { business.SubThread(i); } public void init() { final Business business = new Business(); new Thread( new Runnable() { } /** * @param args */ public static void main(String[] args) { https:// TODO Auto-generated method stub new ThreadTest().init();
} } } { } } for(int j=0;j<5;j++) System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j); bShouldSub = true; this.notify(); public synchronized void SubThread(int i) { } if(!bShouldSub) { } bShouldSub = false; this.notify(); System.out.println(Thread.currentThread().getName() + try { this.wait(); https:// TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { } for(int j=0;j<10;j++) ":i=" + i +",j=" + j);
8。
Vector newVector = new Vector();
For (int i=0;i
{
Object obj = vector.get(i);
if(!newVector.contains(obj);
newVector.add(obj);
}9
int engishCount;
int chineseCount;
int digitCount;
for(int i=0;i
{char ch = str.charAt(i);
if(ch>=’0’ && ch<=’9’)
{digitCount++}
else if((ch>=’a’ && ch<=’z’) || (ch>=’A’ && ch<=’Z’))
{engishCount++;}
else
{chineseCount++;}}
System.out.println(……………);
(1)select * from employees
where Year(hiredDate) = Year(date())
or (salary between 1000 and 200)
or left(last_name,3)='abc';
(2)mysql> select id,name,salary,deptid did from employee1 where (select avg(salary) from employee1 where deptid = did) > 1800;
(3)select employee1.*,(employee1.salary-t.avgSalary)*100/employee1.salary from employee1,
(select deptid,avg(salary) avgSalary from employee1 group by deptid) as t where employee1.deptid = t.deptid and employee1.salary>t.avgSalary;
看过“2017 java笔试面试题”
浏览量:2
下载量:0
时间: