java面经基础
文章平均质量分 93
java基础知识面经80问
土豆烩芋头
在校读书ing
展开
-
JAVA后端开发面经2
面经来源于github上的在学习时,用自己的语言解释。原创 2024-01-17 10:21:49 · 882 阅读 · 0 评论 -
JAVA后端开发面经5
这道题主要考你的代码量到底多大,如果你长期写代码的,应该经常都看到过一些系统方面的异常,你不一定真要回答出5个具体的系统异常,但你要能够说出什么是系统异常,以及几个系统异常就可以了,当然,这些异常完全用其英文名称来写是最好的,如果实在写不出,那就用中文吧,有总比没有强!调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。原创 2024-01-24 16:05:43 · 771 阅读 · 0 评论 -
JAVA后端开发面经3
由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性。靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。(一般是C++的说法)原创 2024-01-18 12:03:26 · 908 阅读 · 1 评论 -
JAVA后端开发面经4
从下面例子的运行结果中可以发现,try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。-----------执行结果----------------- func1。原创 2024-01-19 11:36:58 · 857 阅读 · 0 评论 -
JAVA后端开发面经7
但是,jre本身就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让java 帮我们做,要被传输的对象必须实现serializable接口,这样,javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,至于这个compareTo方法怎么做,就看当前这个对象的类中是如何编写这个方法的。Set里的元素是不能重复的,元素重复与否是使用。原创 2024-01-26 15:20:23 · 1393 阅读 · 1 评论 -
JAVA后端开发面经8
由于在tomcat的web应用程序中,都是由webapp自己的类加载器先自己加载WEB-INF/classess目录中的类,然后才委托上级的类加载器加载,如果我们在tomcat的web应用程序中写一个java.lang.String,这时候Servlet程序加载的就是我们自己写的java.lang.String,但是这么干就会出很多潜在的问题,原来所有用了java.lang.String类的都将出现问题。输出的是"i = 0"。但是,能够被覆盖的类是有限制范围,反正不包括java.lang这样的包中的类。原创 2024-01-27 18:33:00 · 927 阅读 · 1 评论 -
Java后端开发面经1
因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位。&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的为true时,结果才为true,否则结果为false。n=1时,1<<n为2。原创 2024-01-16 10:51:22 · 864 阅读 · 1 评论 -
JAVA后端开发面经6
面经来源于github上的在学习时,用自己的语言解释主要相同点:Lock能完成synchronized所实现的所有功能。主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。Lock还有更强大的功能,例如,它的tryLock方法可以非阻塞方式去拿锁。以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。原创 2024-01-25 10:04:42 · 857 阅读 · 1 评论