发表时间:2022-03-25来源:网络
1、在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。例如,
另外,我个人通常并不使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。
int arr[][] = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 9 } }; boolean found = false; for (int i = 0; i < arr.length && !found; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.println("i=" + i + ",j=" + j); if (arr[i][j] == 5) { found = true; break; } } }2、请说出作用域public,private,protected,以及不写时的区别。
private修饰的成员变量和函数只能在类本身和内部类中被访问。protected 修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。public修饰的成员变量和函数可以被类、子类、同一个包中的类以及任意其他类访问。默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。
下面这个表能清楚的说明java中作用域操作符的作用:

3、说说对javaee中的session的理解,你是怎么用session的?
在servlet 的api中,session表示的是浏览器和web服务器的一次会话。在web服务器中是通过session来区别不同的浏览器的,因为web 服务器采用的是http协议进行通讯,web 服务器根本不知道正在请求的浏览器是谁,它不会记录浏览器的访问信息,所以需要session来记录发出请求的浏览器是谁,session 和浏览器之间是怎么保持通信的呢? 当浏览器第一次对一个web站点发出请求后,web服务器按照请求路径查找资源,并生成一个session,web服务器将查找到的资源作为响应返回给浏览器,在这个响应中会附带上一个特殊名称的cookie信息,这个cookie 就是session的id。之后浏览器再次发出请求时,会在请求信息中带上这个cookie信息,这个cookie 的作用就是用来告诉web服务器,我这个浏览器已经访问过你了,你不需要再生成session了。
Session 的应用有很多
1.过滤未登录用户4、分层设计的好处?
把各个功能按调用流程进行了模块化,模块化带来的好处就是可以随意组合。分层的好处:
5、java中实现多态的机制是什么?
靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
6、abstract(抽象类)和interface(接口)有什么区别?
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别:
7、构造方法Constructor是否可被override(重写)?
构造方法Constructor不能被继承,因此不能重写Override,但可以被重载Overload。
8、面向对象的特征有哪些方面?
面向对象的三大特征:
9、String是最基本的数据类型吗,是否可以继承String类?
java的基本数据类型有以下8种:
java.lang.String类是final类型的,因此不可以继承这个类、也不能修改这个类 。为了提高效率节省空间,对于要经常修改的字符串,建议使用StringBuffer类。
10、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有length()这个方法。
11、String s = new String("abc");创建了几个String Object? 二者之间有什么区别?
答案:一个或者两个
解析:
12、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"
只创建了一个String对象,因为这行代码被编译器编译时进行了优化,相当于直接定义了一个”abcd”的字符串,所以只创建了一个String对象。
13、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
finally中的代码肯定会执行,但是会先执行try中的代码,如果try中有return,那么return的东西会先放到函数栈中,然后再执行finally中的代码。
14、final, finally, finalize的区别
Final:是全局变量声明的时候使用,意思是这个变量不可被修改,不可被override,一般用于声明常量,或者系统设置的值。finally:是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。finalize:是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。15、运行时异常与一般异常有何异同?
Java提供了两类主要的异常:运行时异常runtime exception和一般异常checked exception
16、error和exception有什么区别?
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。Exception又细分为运行时异常runtime exception,受检查异常checked exception(一般异常)。17、请写出你最常见到的5个运行时异常 runtime exception
ClassCastException 类型强制转换异常ClassNotFoundException 类没找到时,抛出该异常FileNotFoundException 文件未找到异常NullPointerException 空指针异常S 操作数据库异常ArithmeticException 算术异常IllegalArgumentException 传递非法参数异常IndexOutOfBoundsException 下标越界异常NoSuchElementException 方法未找到异常18、Java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
try{}语句块 中放的是要检测的java代码,可能有会抛出异常,也可能会正常执行;catch(异常类型){}块 是当Java运行时系统接收到try块中所抛出的异常对象时,会寻找能处理这一异常的catch块来进行处理(可以有多个catch块);finally{}块 不管系统有没有抛出异常都会去执行,一般用来释放资源。除了在之前执行了System.exit(0);throw 用于手动抛出异常。作为程序员可以在任意位置手动抛出异常;throws 用于在方法上标识要抛出的异常,抛出的异常交由调用者处理;19、ArrayList和Vector、LinkedList的区别?
(1)Vector是线程安全的,而ArrayList不是。(2)当存储空间不足的时候,ArrayList默认增加为原来的50%,Vector默认增加为原来的一倍。(3)Vector可以设置容量增加的参数,而ArrayList不可以。(4)LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。20、List 和 Map 区别?
(1)、List是存储单列数据的集合,List中存储的数据是有顺序,并且允许重复;(2)、Map是存储键和值这样的双列数据的集合,Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。21、List、Map、Set三个接口,存取元素时,各有什么特点?
List与Set都是单列元素的集合,它们有一个共同的父接口Collection。
22、说出一些常用的类,包,接口,请各举例5个
常用的类:23、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
基于流方向:24、字节流与字符流的区别?
(1)字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。(2)字节流中,中文可能会乱码,字符流不会。25、什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流;
Serializable.只有实现了 serializable和Externalizable接口的类的对象才能被序列化
Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的序列化机制是RMI、EJB等技术的技术基础。用途:利用对象的序列化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。
26、GC是什么? 为什么要有GC?
GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
27、排序都有哪几种方法?请用JAVA实现一个冒泡排序。
排序的方法有:
==============

========

=====

=========


学习需要知道:
1、是什么
2、解决了什么问题
3、怎么实现的
如有错误或其它问题,欢迎小伙伴留言评论、指正。如有帮助,欢迎点赞+转发分享。
更多相关开源技术文章,请持续关注民工哥知乎技术专栏。
我是民工哥,一个爱折腾的IT技术老司机,欢迎关注我,我们一起学习,共同成长!!
上一篇:Java常问面试题整理
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14