JRE(Java Runtime Environment),Java运行环境
JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。
-
对于基本类型,==比较的是值;
-
对于引用类型,==比较的是地址;
-
equals不能用于基本类型的比较;
-
如果没有重写equals,equals就相当于==;
-
如果重写了equals方法,equals比较的是对象的内容;
三、final 在 java 中有什么作用?
-
final修饰的成员变量,必须在声明的同时赋值,一旦创建不可修改;
-
final修饰的方法,不能被子类重写;
-
final类中的方法默认是final的;
-
private类型的方法默认是final的;
四、java 中的 Math.round(-1.5) 等于多少?
Math提供了三个与取整有关的方法:ceil、floor、round
Math.ceil(11.3) = 12;
Math.ceil(-11.3) = 11;
Math.floor(11.3) = 11;
Math.floor(-11.3) = -12;
加0.5然后向下取整。
Math.round(11.3) = 11;
Math.round(11.8) = 12;
Math.round(-11.3) = -11;
Math.round(-11.8) = -12;
五、String 属于基础的数据类型吗?
不属于。
八种基本数据类型:byte、short、char、int、long、double、float、boolean。
六、String str="i"与 String str=new String(“i”)一样吗?
String str="i"会将起分配到常量池中,常量池中没有重复的元素,如果常量池中存中i,就将i的地址赋给变量,如果没有就创建一个再赋给变量。
String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。
七、如何将字符串反转?
将对象封装到stringBuilder中,调用reverse方法反转。
八、String 类的常用方法都有那些?
1、常见String类的获取功能
-
length:获取字符串长度;
-
charAt(int index):获取指定索引位置的字符;
-
indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引;
-
substring(int start):从指定位置开始截取字符串,默认到末尾;
-
substring(int start,int end):从指定位置开始到指定位置结束截取字符串;
2、常见String类的判断功能
-
equals(Object obj): 比较字符串的内容是否相同,区分大小写;
-
contains(String str): 判断字符串中是否包含传递进来的字符串;
-
startsWith(String str): 判断字符串是否以传递进来的字符串开头;
-
endsWith(String str): 判断字符串是否以传递进来的字符串结尾;
-
isEmpty(): 判断字符串的内容是否为空串"";
3、常见String类的转换功能
-
byte[] getBytes(): 把字符串转换为字节数组;
-
char[] toCharArray(): 把字符串转换为字符数组;
-
String valueOf(char[] chs): 把字符数组转成字符串。valueOf可以将任意类型转为字符串;
-
toLowerCase(): 把字符串转成小写;
-
toUpperCase(): 把字符串转成大写;
-
concat(String str): 把字符串拼接;
4、常见String类的其他常用功能
-
replace(char old,char new) 将指定字符进行互换
-
replace(String old,String new) 将指定字符串进行互换
-
trim() 去除两端空格
-
int compareTo(String str) 会对照ASCII 码表 从第一个字母进行减法运算 返回的就是这个减法的结果,如果前面几个字母一样会根据两个字符串的长度进行减法运算返回的就是这个减法的结果,如果连个字符串一摸一样 返回的就是0。
九、new String(“a”) + new String(“b”) 会创建几个对象?
对象1:new StringBuilder()
对象2:new String(“a”)
对象3:常量池中的"a"
对象4:new String(“b”)
对象5:常量池中的"b"
深入剖析:StringBuilder中的toString():
对象6:new String(“ab”)
强调一下,toString()的调用,在字符串常量池中,没有生成"ab"
附加题:
String s1 = new String("1") + new String("1");//s1变量记录的地址为:new String
s1.intern();//在字符串常量池中生成"11"。如何理解:jdk6:创建了一个新的对象"11",也就有新的地址;jdk7:此时常量池中并没有创建"11",而是创建了一个指向堆空间中new String("11")的地址;
String s2 = "11";
System.out.println(s1 == s2);//jdk6:false;jdk7:true
十、普通类和抽象类有哪些区别?
-
抽象类不能被实例化;
-
抽象类可以有抽象方法,只需申明,无须实现;
-
有抽象方法的类一定是抽象类;
-
抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;
-
抽象方法不能声明为静态、不能被static、final修饰。
十一、接口和抽象类有什么区别?
1、接口
-
接口使用interface修饰;
-
接口不能实例化;
-
类可以实现多个接口;
-
①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;
2、抽象类
-
抽象类使用abstract修饰;
-
抽象类不能被实例化;
-
抽象类只能单继承;
-
抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体;
-
如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不是抽象类;②如果没有实现所有的抽象方法,子类仍然是抽象类。
十二、java 中 IO 流分为几种?
1、按流划分,可以分为输入流和输出流;
2、按单位划分,可以分为字节流和字符流;
字节流:inputStream、outputStream;
字符流:reader、writer;
十三、说一下 jsp 的 4 种作用域?
application、session、request、page
十四、BIO、NIO、AIO 有什么区别?
1、同步阻塞BIO
一个连接一个线程。
JDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行。
2、同步非阻塞NIO
最后
小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以关注+点赞,点击这里免费获取
程序员代码面试指南 IT名企算法与数据结构题目最优解
这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!
《TCP-IP协议组(第4版)》
本书是介绍TCP/IP协议族的经典图书的最新版本。本书自第1版出版以来,就广受读者欢迎。
本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共30草和7个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即IPv6协议:第六部分介绍网络安全问题:第七部分给出了7个附录。
Java开发手册(嵩山版)
这个不用多说了,阿里的开发手册,每次更新我都会看,这是8月初最新更新的**(嵩山版)**
MySQL 8从入门到精通
本书主要内容包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL数据库和PDO数据库抽象类库等。最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。
Spring5高级编程(第5版)
本书涵盖Spring 5的所有内容,如果想要充分利用这一领先的企业级 Java应用程序开发框架的强大功能,本书是最全面的Spring参考和实用指南。
本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
JAVA核心知识点+1000道 互联网Java工程师面试题
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。
pring参考和实用指南。
本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
[外链图片转存中…(img-HSwz6rp7-1628313845815)]
JAVA核心知识点+1000道 互联网Java工程师面试题
[外链图片转存中…(img-PTfmBWj1-1628313845817)]
[外链图片转存中…(img-zeWsVhf6-1628313845817)]
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。