Java面试系列11 1 Java中的异常处理机制的简单原理和应用 当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。 违反语义规则包括2种情况。 另一种 情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是 java.lang.Thowable的子类。 2 垃圾回收的优点和原理,考虑2种回收机制 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。 JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。 8 Java中的线程有四种状态分别是 运行、就绪、挂起、结束 9 简述synchronized和 java.util.concurrent.locks.Lock的异同 主要相同点: Lock能完成synchronized
适用范围(资源的定义): 任何实现 java.lang.AutoCloseable或者 java.io.Closeable 的对象 关闭资源和 finally 块的执行顺序: 在 try-with-resources 语句中,任何 catch 或 finally 块在声明的资源关闭后运行 《Effective Java》中明确指出: 面对必须要关闭的资源,我们总是应该优先使用 try-with-resources Java 中类似于InputStream、OutputStream 、Scanner 、PrintWriter等的资源都需要我们调用close()方法来手动关闭,一般情况下我们都是通过try-catch-finally = null) { scanner.close(); } } 使用 Java 7 之后的 try-with-resources 语句改造上面的代码: try (Scanner
线程安全:Vector使用了 Synchronized 来实现线程同步,是线程安全的,而
Java Lambda表达式 的一个重要用法是简化某些匿名内部类 (Anonymous Classes )的写法。 Optional 类如果你写过一些 Java 代码的话,你应该知道 Java 中最常见的就是空指针异常错误。这个错误的原因就是你对一个为空的对象进行操作了。 这个问题在我们网站上已经有了很多的讨论了,如希望了解更多,请参考:Java 8 开始新增的 Optional 类针对面试的回答,Optional 主要是尝试解决 Java 中遇到的过多的空对象异常问题。 https://www.isharkfly.com/t/java-8-11/14996
11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区: 1. 13.简述java垃圾回收机制? 在java中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行。 到了初始化阶段,才真正开始执行类中定义的Java程序代码。 17. 简述java类加载机制? 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。 下一篇:java常见面试题及答案 21-30 http://blog.csdn.net/hsk256/article/details/49363271 发布者:全栈程序员栈长,转载请注明出处:https
Java的String这个类是我在一开始学习的时候遇到的,起初一直把它误认为是一个基本的数据类型,以为它就是很简单的一个底层的实现。
随着分布式技术的普及和海量数据的增长,io的能力越来越重要,java提供的io模块提供了足够的扩展性来适应。 我是李福春,我在准备面试,今天的问题是: java中的io有哪几种? ; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress ; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress ; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.InetSocketAddress ; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.InetSocketAddress
11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区: 1. 13.简述java垃圾回收机制? 在java中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行。 15.java内存模型 java内存模型(JMM)是线程间通信的控制机制.JMM定义了主内存和线程之间抽象关系。 到了初始化阶段,才真正开始执行类中定义的Java程序代码。 17. 简述java类加载机制? 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。
和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣! 在此专栏《Java核心面试宝典》记录我们备战梦想的【day 11】! 之前和大家总结的在面向对象这一部分的面试题就结束了,今天继续来和大家分享在Java的异常处理中常见的几个面试题。 Java的异常处理基于三种操作:声明异常、抛出异常和捕获异常 声明异常: 如果一个方法可能抛出异常,则需要在方法声明中使用throws声明异常,如果一个方法可能抛出多种类型的异常,则需要在throws 今日总结 今天的面试题全部都是关于异常抛出的,其中需要掌握的就是处理异常的三种操作,以及这三种操作是具体如何实现的,熟悉try-catch-finally语句的使用规则。 如果小伙伴们有遇到相关的其他面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习! 我是灰小猿,我们下期见!
前言 面试web自动化必然会问到selenium,问selenium相关的问题定位是最基本的,也是自动化的根本,所以面试离不开元素定位问题。 之前看到招聘要求里面说“只会复制粘贴xpath的就不要投简历了”,说明面试官对求职者的自动化能力要求不能停留在复制粘贴上。 还是那句话,想学自动化的话,需牢记:录制穷三代,复制毁一生! 那就是这个元素一会在页面上方,一会在下方,飘忽不定的动态元素,定位方法也是一样,按f12,根据元素属性定位(元素的tag、name的步伐属性是不会变的,动的只是class属性和styles属性) 4.如何通过子元素定位父元素 面试官尽喜欢搞一些冷门的定位来考求职者
在前面【《从Java面试题来看源码》-LinkedBlockingQueue 源码分析】的文章中,我们看到有一个toString方法是这样的: public String toString Helpers类用于并发包输出字符串,该类只在输出数组的时候获取锁,而不是在toString中获取锁 Java11中用到了Helpers.collectionToString(this)的方式输出字符串 ,并且与Java8是不同的。 先看看Java11中Helpers类的写法: /** * Collection.toString() 的一种实现,适用于有锁的类。 Java11中是: toString():我要输出了,队列你先把当前值给我 队列:放下原来的事,把toString()要的数据准备好,给了toString()后,继续做原来的事 toString:我可以输出了
JAVA 11初体验 随着JAVA没半年发布一次新版本,前几天JAVA 11隆重登场。 在JAVA 11中,增加了一些新的特性和api, 同时也删除了一些特性和api,还有一些性能和垃圾回收的改进。 作为一名一线的开发人员,JAVA 11给我们带来哪些便利之处呢? 但是在JAVA 10中,var变量不能在lambda表达式中声明,在JAVA 11中,解决了这个问题。 在JAVA 11中,我们可以使用JDK原生的 HttpClient了。 三、总结 对于一线开发者而言,JAVA 11的体验就这么多,如有遗漏,会在以后补充。
Java 11,作为长期支持(LTS)版本,自2018年发布以来,已经成为许多企业的首选。它不仅提供了稳定性,还引入了一系列令人兴奋的新特性。 局部变量类型推断(var关键字)Java 10引入了局部变量类型推断的预览特性,Java 11将其正式纳入。现在,你可以使用var关键字来声明局部变量,编译器将自动推断变量的类型。 HTTP客户端(HttpClient)Java 11引入了一个新的HTTP客户端API,它提供了一个更现代、更高效的方式来发送HTTP请求。 Epsilon垃圾收集器Java 11引入了一个新的垃圾收集器——Epsilon GC,它是一个无操作的垃圾收集器,不执行任何内存回收。 你最喜欢Java 11的哪个特性?在评论中分享你的看法,并点赞这篇文章,让更多人了解Java 11的魅力!如果你有任何问题或想要了解更多细节,请在评论区留言,我会尽快回复你。
java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Collection 接口进行功能上的扩充
,选中类后F4 B:视图 是由某些视窗的组合而成的 Java视图 Debug视图 11.05_Java开发工具(Eclipse工作空间的基本配置) A:程序的编译和运行的环境配置(一般不改) window Java修改 -- Java Edit Text Font b:控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts --Export--Java--Javadoc—Finish C:使用jar包 11.13_Java开发工具(Eclipse中如何删除项目和导入项目) A:删除项目 选中项目 – 右键 – 删除 从项目区域中删除 ) 应用程序编程接口 B:Java API 就是Java提供给我们使用的类,这些类将底层的实现封装了起来, 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。 (面试题) 11.22_常见对象(==号和equals方法的区别) ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值 equals
逃逸分析 定义 逃逸分析是一种可以有效减少Java中同步负载和内存堆分配压力的跨函数全局数据流分析方法. 但是在Java实际运行的时候, 这样的假设并不成立. 因为Java中的很多特性, 比如动态类加载, 调用本地函数, 反射程序调用都将打破”封闭世界”的约定. [info ][gc] GC(10) Pause Young (G1 Evacuation Pause) 7M->1M(10M) 0.334ms [0.281s][info ][gc] GC(11
所以 Java 11 的版本号是 18.9(LTS)。 不过与 Java 9 和 Java 10 这两个被称为“功能性的版本”不同(两者均只提供半年的技术支持),Java 11 不仅提供了长期支持服务,还将作为 Java 平台的参考实现。 新特性 根据官网的公开信息,此处的Java 11主要更新了 17 个 JEP。 程序猿,Java 11究竟带来了哪些改变呢,对于我们写代码会有什么帮助呢? 但是在JAVA 10中,var变量不能在lambda表达式中声明,在JAVA 11中,解决了这个问题。
java 11 是继 java8 之后的第一个LTS版本。因此有必要针对它进行一些深入的学习,虽然短时间内java8 还是主流版本。 当然,如果从java8基础上升级,几乎可以确定目标就是java11。 下面梳理一下 java11 的新特性。 继续来研究这个话题,java 11 解决了什么问题? java11 修复了这个问题,以上代码在java11中执行正常。
随着JAVA每半年发布一次新版本,前几天JAVA 11隆重登场。在JAVA 11中,增加了一些新的特性和api, 同时也删除了一些特性和api,还有一些性能和垃圾回收的改进。 作为一名一线的开发人员,JAVA 11给我们带来哪些便利之处呢?下面我们来体验一下。 但是在JAVA 10中,var变量不能在lambda表达式中声明,在JAVA 11中,解决了这个问题。 在JAVA 11中,我们可以使用JDK原生的 HttpClient了。 总结 对于一线开发者而言,JAVA 11的体验就这么多,如有遗漏,会在以后补充。
类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法去内,然后在堆区创建一个java.lang.Class对象,用来封装在方法区内的数据结构。 类的加载最终是在堆区内的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 4)分代收集算法:一般是把Java堆分为新生代和老年代,根据各个年代的特点采用最适当的收集算法。新生代都发现有大批对象死去,选用复制算法。 (2)JVM常见的调优参数包括: -Xmx 指定java程序的最大堆内存, 使用java -Xmx5000M -version判断当前系统能分配的最大堆内存 -Xms 指定最小堆内存, 通常设置成跟最大堆内存一样 11. 数据库的四大特征,数据库的隔离级别? 数据库的四大特征: (1)原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。