java面试(搬运总结一下)

第一部分

jdk包含jre,jre包含jvm
jre小的多
优化性能有时可以直接安装jre,而不安装jdk

*java语言的跨平台性,正是因为jvm的不跨平台性

5.什么是隐式类型转换?什么是显式类型转换
大范围到小范围,显示转换(强制转换)
小范围到大范围,隐士转换(自动转换)
6.类的命名规范是什么?
a)首字母大写
b)见名知意

*this代表当前类
super代表最近的父类

成员变量是声明在类里面的,成员变量包含实例成员变量,类成员变量
局部变量是在方法里面的


第一阶段题库
基础知识部分:

  1. JDK 是什么?JRE 是什么?
    a) 答:JDK:java 开发工具包。JRE:java 开发环境。
  2. 什么是 java 的平台无关性?
    a) 答:Java 源文件被编译成字节码的形式,无论在什么系统环境下,只要有 java 虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是 java 的跨平台性。
  3. 在一台电脑上配置 java 环境,path 起什么作用?如何配置?
    a) 答:path 的作用是在 DOS 环境下,能在任意位置使用 JDK 目录中 bin 文件夹中的可执行程序,来编译执行 java 程序。
    path的作用:把绝对路径变成相对路径
    b) 在环境变量中找到 path 变量,把 bin 文件夹的绝对路径加上即可。
  4. 什么样的标识符是合法的?
    a) 由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为 0 到 9。
    b) 标识符的第一个字符不能是数字。
    c) 标识符区分大小写。
  5. Java 有几种基本数据类型?
    a) byte,short,int,long,char,boolean,float,double
    void
  6. 什么是隐式类型转换?什么是显示类型转换?
    a) 当将占位数少的类型赋值给占位数多的类型时,Java 自动使用隐式类型转换。
    b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换。

存储范围大的类型到存储范围小的类型,显示转换(强制转换)
存储范围小的类型到存储范围大的类型,隐式转换(自动转换)
7. &&和&区别,||和|区别?
a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。
b) 而& 和|则将两边的表达式都运算完毕后,再算结果。
8. break,continue 区别?
a) break 结束最近的一个循环,continue 结束当次循环,进入下次循环。
9. 类的命名规则是什么?
a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。
b) 类名最好见名得意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。
10. 类体的内容由两部分构成,哪两部分?
a) 一部分是变量的定义,用来刻画属性。
b) 另一部分是方法的定义,用来刻画功能。
静态变量
动态变量
11. 解释什么是类的成员变量,局部变量,实例成员变量,类成员变量?
a) 变量定义部分所定义的变量被称为类的成员变量。(类中)
b) 在方法体中定义的变量和方法的参数被称为局部变量。
c) 成员变量又分为实例成员变量和类成员变量(static 修饰)。
12. 简述 this 关键字用法。
a) this 关键字使用在实例方法中,代表调用该方法的当前对象。
super代表最近的父类
13. 如何确定方法的返回类型?
a) 方法返回的值的类型就是方法的返回类型,如果无返回值,则返回类型为 void。
14. 返回值为 void 的方法,可否有 return?
a) 可以。但 return 后没有任何值。
15. 解释什么是类方法,什么是实例方法?
a) static 修饰的方法是类方法,无 static 修饰的方法是实例方法。
16. 简述方法和变量的命名规则?
a) 首写字母使用小写,如果由多个单词组成,从第 2 个单词开始首字母使用大写。
见名知意
17. 什么是方法重载?
a) 方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
18. 什么是构造方法?
a) 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型。
19. 如何创建一个对象?
https://www.cnblogs.com/wxd0108/p/5685817.html
a) 使用 new 运算符和类的构造方法为对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法。
20. 系统什么情况下会为类提供构造方法,提供什么样的构造方法?
a) 如果类中没有构造方法,系统会提供一个默认的构造方法,默认的构造方法是无参的。
21. 对象如何调用自己的成员变量和方法?
a) 使用运算符” . ”来调用自己的成员变量和方法。
22. 为什么可以直接用类名来访问类成员变量和类方法?
a) 因为当类被加载到虚拟机的时候,类成员变量就被分配内存,类方法被分配入口地址,所以不用创建对象,可以直接通过类名调用。
23. 类变量有什么特点?
a) 一个类的所有对象共享同一个类变量。
24. 类方法有什么特点?
a) 类方法只能调用类变量和类方法。(同一类中)
25. package 关键字有什么作用,使用中注意什么问题?
a) package 指定一个类所在的包,该语句为源代码第一行。
26. import 关键字有什么作用?
a) 引入程序中所用到的类。
27. 类有几种访问权限?变量和方法有几种访问权限?分别是什么?
a) 类有两种访问权限:public,友好的。
b) 方法和变量的访问权限:public,protected,友好的,private。
28. 简述 java 的访问权限。
a) public:公有的,任何类都可以访问。
b) protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。
c) 友好的:同一个包的类可以访问。
d) private:私有的,在同一个类中才能访问。
29. 子类能继承父类的哪些变量和方法?
a) 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量,并且也自然地继承了父类中不是 private 的方法作为自己的方法。
b) 如果子类和父类不在同一个包中,那么,子类继承了父类的 protected,public 成员变量做为子类的成员变量,并且继承了父类的 protected,public 方法为子类的方法。
30. 子类重写父类的方法,可否降低访问权限?
a) 不可以降低。
31. final 关键字可以用来修饰什么?分别起什么作用?
a) final 可以修饰类,这样的类不能被继承。
b) final 可以修饰方法,这样的方法不能被重写。
c) final 可以修饰变量,这样的变量的值不能被修改,是常量。
32. 简述 super 关键字作用?
a) 使用 super 调用父类的构造方法。
b) 使用 super 操作被隐藏的成员变量和方法。
super代表最近的父类
33. 简述什么是对象上转型?
a) 假设,A 类是 B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。
34. 上转型对象可以操作什么?不可以操作什么?
a) 上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能 。
b) 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。
35. 什么是抽象类?什么是抽象方法?有什么特点?
a) 用关键字 abstract 修饰类称为抽象类,abstract 类不能用 new 运算创建对象,必须产生其子类,由子类创建对象。
b) 用关键字 abstract 修饰方法称为抽象方法,abstract 方法,只允许声明,而不允许实现。
36. 一个类声明实现一个接口,那么这个类需要做什么工作?
a) 实现接口里所有的方法,并且这些方法的访问权限必须是 public。
37. 简述什么是数组?
a) 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从 0 开始排序。
38. 创建数组是否需要指定数组长度,如何求数组长度?
a) 必须指定数组长度,数组调用 .length 来获取数组长度。
39. char 数组和 byte 数组如何转化成字符串?如何求字符串长度?
a) 利用 String 类本身的构造方法,String (char a[]),String (byte a[]),””.length()。
以下方法均为字符串中方法
40. equals equalsIgnoreCase startsWith endsWith
a) 字符串比较 。
b) 忽略大小写比较。
c) 判断是否以指定字符串开头、结尾。
41. regionMatches
a) 判断一个字符串的子串是否和另一个字符串的子串匹配。

  1. compareTo compareToIgnoreCase indexOf
    a) 按字典顺序比较字符串。
    b) 忽略大小写的按字典顺序比较字符串。
    c) 字符串检索。
  2. substring replace trim()
    a) 字符串截取
    b) 字符串替换
    c) 去掉字符串前后空格。
  3. 字符串如何转化为 int 型,double 型?
    a) Integer.parseInt(“1”);
    b) Double.parseDouble(“25。45”);
  4. 简述 StringTokenizer 作用?
    a) 按照指定的分隔符,将字符串解析成若干语言符号。
  5. 如何判断一个字符是不是数字,是不是大写?
    a) Character.isDigit(‘a’)
    b) Character.isUpperCase(‘U’)
  6. 已知一个 java.util.Date 对象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss
    a) SimpleDateFormat formate = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
    formate.format(new Date()));
  7. 如何生成一个 0-100 的随机整数?
    a) (int)(Math.random()*100)
  8. 简述 java 异常处理的机制?
    a) 当所调用的方法出现异常时,调用者可以捕获异常使之得到处理;也可以回避异常。
  9. 简述如下关键字用途 try、catch、throw、throws、finally
    a) try:保护代码,如果 try 中某行代码出现异常,则 try 中代码不再继续执行。
    b) catch:捕获异常,当 try 中出现异常,则 catch 负责捕获异常,并处理。
    c) throw:抛出异常。
    d) throws:声明异常。
    e) finally:无论 try 中是否出现异常,finally 一定执行。
  10. LinkedList 和 ArrayList 区别?
    a) LinkedList 底层通过链式存储结构实现。(添加值快)
    b) ArrayList 底层通过数组实现。(读取值快)

安全性,效率性
52. 什么是 I/O 流,有什么作用?
a) 指数据输入输出的流, I/O 流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。
53. 如何查看一个文件的大小,绝对路径,是否可读?
a) File file = new File(“e://a.txt”);
b) file.length();
c) file.getAbsolutePath();
d) file.canRead();
54. 已知如下代码
File f = new File(“myfile.dat”);
FileInputStream istream = new FileInputStream(f); 如何从流中读取数据。
a) byte[] buff = new byte[100];
b) istream.read(buff);
55. 实现多线程的两种方法?
a) 从 Java.lang.Thread 类派生一个新的线程类,重写它的 run()方法。
b) 实现 Runnable 接口,重写 Runable 接口中的 run()方法。
56. 简述一个线程的生命周期?
a) 新建—运行—中断—死亡
57. 如何让一个准备就绪的线程运行?
a) 调用线程的 start 方法让一个处于准备就绪的状态的线程运行。
58. 如何让一个线程休眠 1000 毫秒?
a) 调用线程的 sleep 方法,参数为 1000。
59. 如何使线程同步?
a) 使用同步方法
synchronized void methodA() { }
b) 使用同步块
synchronized(object) {
//要同步的语句
}
60. 什么是 GC?为什么有 GC?
a) GC 是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
61. 构造方法能否被重写?为什么?
a) 不能,因为构造方法不能被继承,所以不能重写。
62. 是否可以继承 String 类,为什么?
a) 因为 String 类是 final 类,final 修饰的类不能被继承。
63. java 关键字区分大小写吗?
a) java 关键字一律小写。所以无所谓区分大小写,大写的不是关键字。
64. java 采用什么字符集?该字符集有多少字符
a) Java 使用 unicode 字符集,所以常量共有 65535 个
65. 列举算术运算符?
a) +,-,*,/,%
66. 算术混合运算结果精度如何确定?
a) Java 按照运算符两边的操作元的最高精度保留结果的精度。
67. &是位运算符,与运算的规则是什么?
a) 全 1 则 1,否则为 0
68. | 是位运算符,或运算的规则是什么?
a) 全 0 则 0,否则是 1
69. ^是位运算符,异或运算的规则是什么?
a) 相同 0,不同 1
70. ~是位运算符,非运算的规则是什么?
a) 遇 1 则 0,遇 0 则 1
71. if 语句后边有个括号,该括号里表达式为什么类型?
a) boolean 类型
72. switch 语句后括号里的表达式是什么类型?case 后类型如何确定?
https://blog.csdn.net/javazejian/article/details/71333103#枚举的定义
a) char,int,byte,short,枚举类型。
b) case 后面是一个常量,该常量类型由 switch 后括号内表达式来确定。
73. switch 语句后,default 关键字起什么作用?break 起什么作用?
a) default:当用户指定的表达式与任何 case 都不匹配的时候,执行 default 后的语句。
b) break:退出当前 case。
74. for 循环后括号里三个表达式分别起什么作用?
a) 1:循环初始化的时候执行,只执行一次。
b) 2:循环成立的条件。
c) 3:循环每次执行都会调用该表达式,一般做变量自增。
75. while 和 do。。while 区别?
a) while 先判断条件,再执行。
b) do……while 先执行,再判断条件
c) do……while 至少执行一次。
76. 什么是编译执行的语言?什么是解释执行的语言?
a) 编译方式:Compilation:针对当前的机器处理器芯片,将源程序全部翻译成机器指令,称做目标程序,再将目标程序交给计算机执行.
b) 解释方式:Interpretation:这种方式不产生整个的目标程序,而是根据当前的机器处理器芯片,边翻译边执行,翻译一句执行一句.
77. 简述一个 java 程序执行的过程?
a) 首先编写 java 源文件(扩展名为.java 的文本文档)。
b) 用 javac 命令把源文件编译成字节码文件(.class 文件)
c) 用 java 命令执行字节码文件。
78. 成员变量的作用范围?局部变量的作用范围?
a) 成员变量在整个类内都有效
b) 局部变量只在定义它的类内有效。(方法)
79. 构造方法有什么作用?
a) 在创建对象的时候,java 虚拟机会调用类的构造方法来创建对象。一般对象的初始化工作可以放在构造方法里。
80. java 三大特性?
a) 封装,继承,多态。

数据库部分
81. 简述什么是关系型数据库?
a) 所谓关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,
而一个关系型数据库就是由二维表及其之间的联系组成的一个数据集合。
b) 关系型数据库是由许多数据表(Table)所组成,表又是由许多记录(Row 或 Record)所组成,而纪录又是由许多的字段(Column 或 Filed)所组成。
82. 什么是主键?
a) 设置一个表中的某个字段为主键,这个字段能够唯一的确定该表中某条记录,这样的字段我们称为主键。
83. 什么是外键?
a) 外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。
用来建立表与表之间的联系
84. 主外键关联的作用?
a) 保证数据完整性。
b) 消除冗余数据。
用来建立表与表之间的联系
85. SQL 语句中文含义是?
a) Structured Query Language,结构化查询语言。
86. 什么是数据库?
a) 数据库是长期存储在计算机内的、有组织的、可共享的数据集合。
87. 什么数据库管理系统?
a) DBMS 就是实现把用户意义下的抽象的逻辑数据转换成计算机中的具体的物理数据的处理软件。

JDBC 部分
88. JDBC 含义?
a) JDBC(Java DataBase Connectivity) java 数据库连接,是 java 连接数据库的 AIP。
89. JDBC 连接数据库步骤?
a) 加载驱动
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
b) 建立连接
Connection conn = DriverManager.getConnection(dbURL,username,password);
c) 创建语句对象
Statement stmt = conn.createStatement()
90. 如何使用 sql 语句操作数据库?
a) 得到语句对象之后,使用语句对象调用 executeUpdate(sql)方法和 executeQuery(sql)
方法分别执行更新语句和查询语句。
91. executeUpdate(sql)方法的返回值表示什么含义?
a) 表示该更新方法影响了几行记录。
92. executeQuery(sql)方法的返回值如何使用?
a) 该方法的返回值为一个结果集,即 ResultSet 类型的对象。
b) ResultSet 类型的对象有一个游标,指向当前操作的行。该游标默认指向第一行记录之前,
如果我们想操作结果集,需要先将游标下移,我们调用 ResultSet 接口的 next()方法将游标下移,
如果结果集里有数据,则游标下移,指向第一行,
如果结果集里没有记录,则下移失败。
当游标指向具体的某一行时,我们就可以从结果集里边获取值了。获取的值为当前游标指向行的值。
93. 如何获取游标所指的行的数据?
a) 当游标指向某一行时,我们可以使用 ResultSet 接口的 getString(列名)方法来获取某一列的值,列名作为方法的参数。
94. 创建语句对象时,createStatement(参数 1,参数 2),两个参数分别表示什么含义?
a) 第一个参数指定该语句对象生成的结果集是否可滚动以及是否敏感,
b) 第二个参数指定该语句对象生成的结果集是否可以更新数据库。

第二部分

一、JAVA 基础篇- 概念

  1. 简述你所知道的 Linux :
    Linux 起源于 1991 年,1995 年流行起来的免费操作系统,目前, Linux 是主流的服务器操作系统, 广泛应用于互联网、云计算、智能手机(Android)等领域。由于 Java 主要用于服务器端的开发,因此 Java 应用的部署环境有很多为 Linux。
    Windows 操作系统的目录结构,是以盘符为单位,C 盘、D 盘、E 盘等等,数据存储在各个盘符之下,而 Linux 操作系统最顶层只有一个根目录 root,所有文件都存储在这一个根目录之下。Linux 不像 Windows 的图形操作界面,是通过命令的方式进行操作,常用命令有:
    a . pwd:用于显示当前工作目录;
    b . ls:用于查看当前工作目录内容;
    c . cd:用于改变当前工作目录。
  2. 什么是 Java 虚拟机?为什么 Java 被称作是“ 平台无关的编程语言” ?
    https://www.cnblogs.com/alilcu/p/8068508.html
    Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。
    Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个
    平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层
    硬件平台的指令长度和其他特性。
    3.JDK 、JRE 、JVM 关系是什么?
    https://blog.csdn.net/wang_xing1993/article/details/70226934
    https://www.cnblogs.com/zhangzongxing01/p/5559126.html
    JDK(Java Development Kit)即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:用于编译 java 程序的 javac 命令、用于启动 JVM 运行 java 程序的 java 命令、用于生成文档的javadoc 命令以及用于打包的 jar 命令等等。
    JRE(Java Runtime Environment)即为 Java 运行环境,提供了运行 Java 用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
    JVM(Java Virtual Machines)即为 Java 虚拟机,提供了字节码文(.class)
    的运行环境支持。简单说,就是 JDK 包含 JRE 包含 JVM。
    4.Java 支持的数据类型有哪些?什么是自动拆装箱?
    堆和栈的联系与区别
    https://blog.csdn.net/pt666/article/details/70876410
    基本数据类型:
    整数值型:byte,short,int,long,
    字符型:char
    浮点类型:float,double
    布尔型:boolean
    整数默认 int 型,小数默认是 double 型。Float和 long 类型的必须加后缀。
    首先知道 String 是引用类型不是基本类型,引用类型声明的变量是指该变量在
    内存中实际存储的是一个引用地址,实体在堆中。引用类型包括类、接口、数组等。String 类还是 final 修饰的。
    而包装类就属于引用类型,自动装箱和拆箱就是基本类型和引用类型之间的转换,至于为什么要转换,因为基本类型转换为引用类型后,就可以 new 对象,从而调用包装类中封装好的方法进行基本类型之间的转换或者 toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的),还有就是如果集合中想存放基本类型,泛型的限定类型只能是对应的包装类型。

基本数据类型和它对应的封装类型之间可以相互转换,从基本数据类型到封装类型叫做装箱,从封装类型到基本数据类型叫拆箱。
5. 面向对象是什么?
面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),Java 是一个支持并发、基于类和面向对象的计算机编程语言,面向对象软件开发的优点:
代码开发模块化,更易维护和修改;
代码复用性强;
增强代码的可靠性和灵活性;
增加代码的可读性。
5. 面向对象 的 基本特性 是什么?
面向对象的四大基本特性:
抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。对同一事物在不同的需求下,需要提取的特性可能不一样。得到的抽象模型中一般包含:属性(数据)和操作(行为)。这个抽象模型我们称之为类。对类进行实例化得到对象。
封装:封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或者子类必须的属性和操作。类封装的实现依赖类的修饰符(public、protected和 private 等)
继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。
多态:多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;就是类多态特性。多态可以分成编译时多态和运行时多态。

第三部分

简述题
1.servlet执行流程
a、客户端发送请求后首先判断是否存在servlet实例,如果没有存在则创建servlet实例(实例化阶段)
b、如果存在servlet实例,则开始其初始化阶段,执行其初始化方法init()(初始化阶段)
c、之后就是响应客户端请求阶段,调用servlet()方法,根据提交方式选择doGet()方法或者doPost()方法。(服务阶段)
d、最后就是销毁阶段,程序结束或者是服务器停止,调用其销毁方法destroy(销毁阶段)
2.springMVC的执行流程
https://blog.csdn.net/liangzi_lucky/article/details/52459378
用户发起请求到前端控制器(Controller)
前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。
HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组
前端处理器通过处理器适配器包装后执行Handler对象。
处理业务逻辑。
Handler处理完业务逻辑,返回ModelAndView对象,其中view是视图名称,不是真正的视图对象。
将ModelAndView返回给前端控制器。
视图解析器(ViewResolver)返回真正的视图对象(View)。
(此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
返回渲染后的视图(html/json/xml)返回。
给用户产生响应。
3.父类与子类之间的调用顺序(打印结果)
https://blog.csdn.net/zhangyuan19880606/article/details/54376012
父类的静态代码块
子类的静态代码块
父类的构造代码块
父类的构造方法
子类的构造代码块
子类的构造方法
子类的a方法
4.内部类与外部类的调用
java内部类和外部类的关系https://blog.csdn.net/lmj121212/article/details/53311842
内部类和外部类之间互相访问https://blog.csdn.net/jierui001/article/details/3862877
https://www.cnblogs.com/rgever/p/8902758.html内部类和外部类之间的相互调用
外部类访问内部类:必须建立内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是成员内部类不可以有静态成员
当外部类的成员和内部类的成员重名时单单用this是区分不了的。在内部类中访问外部类的成员时可以用如下语法区分
<外部类类名>.this.<外部类中需要被访问的成员名>;
内部类访问外部类:内部类可以访问外部类的所有成员包括私有成员,因为外部类持有内部类的引用

5.AOP与IOC的概念(即spring的核心)
Spring中IOC和AOP的详细解释(转)
浅谈Spring中IOC和AOP是什么?https://blog.csdn.net/snn1410/article/details/45167979
AOP:面向切面
IOC:控制反转,依赖注入
6.数据库优化
https://blog.csdn.net/yzllz001/article/details/54848513
1、 减少数据访问(减少磁盘访问)
2、 返回更少数据(减少网络传输或磁盘访问)
3、 减少交互次数(减少网络传输)
4、 减少服务器CPU开销(减少CPU及内存开销)
5、 利用更多资源(增加资源)

7.tomcat服务器优化(内存,并发连接数,缓存)
http://www.mamicode.com/info-detail-1831690.html简
https://blog.csdn.net/xingxiupaioxue/article/details/70149099详
8.http协议
https://blog.csdn.net/green703338130/article/details/79402405
https://blog.csdn.net/Prince_fmx/article/details/78202527
HTTP:Hypertext Transfer Protocol的缩写,表示超级文本传输协议(也称为无状态协议),是关于如何在网络上传输超级文本的协议。HTTP使用端口发送和接收消息,80端口是HTTP默认的端口,即一般不写。服务器端响应客户端的请求会返回状态码,每一种状态码都表示不同的意义。
9.类加载的过程
https://blog.csdn.net/sinat_19650093/article/details/50939132
类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。
其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。
10.对象的创建
Java中创建对象的5种方式
https://blog.csdn.net/w410589502/article/details/56489294Java 创建对象的几种方式
https://www.cnblogs.com/chenyangyao/p/5296807.html图文
使用new关键字
使用反射机制(使用class类的newInstance方法、使用ConConstructor类的newInstance方法)
使用clone方法
使用反序列化
11.事物的理解
https://www.cnblogs.com/understander/p/5535118.html
https://blog.csdn.net/fengchao2016/article/details/70207222
事物是恢复和控制并发的基本单位
事物有4个属性:原子性、一致性、隔离性、持久性(acid)

第四部分

1.for循环语句为什么有时后面要加大括号,有时不要加?
首先,出于代码的书写规范考虑,应该为所有的for语句加上大括号!
实际应用中,有的人为了简化(其实也没省多少时间…),在循环体只有一条语句的时候,省略了大括号
,例 for(int i=0;i<5 ;i++) a=a+i;

但,如果要循环的内容(循环体)超过一条语句,则必须加大括号,例:
for(int i=0;i<=5;i++)
{
a+=i;
b=a+b; //如果不加大括号,这条语句不会被循环执行.
}
2.for循环结构中的3个表达式缺一不可,错
for(;;)
3.while(1)和for(;;)两个死循环
4.取整函数Int(),求不大于number 的最大整数,Int(3.8)=3,Int(-3.8)=-4。
5.int a[ ]中,a表示数组名,代表数组的首地址,可以看成一个常量,不可更改。
数组的定义形式:
元素数据类型 数组名 [ 数组元素个数 ] ;
其中:
中括号是数组的标识。
括号中的数组元素个数在有初始化数据时,可省,按初始化实际数据个数分配数组空间。如: int a[]={1,2,3,4,5}; //a占5个整型数据空间。
int[] a与int a[]没什么区别
6.https://blog.csdn.net/s34497841/article/details/72418116
Java分支语句
if-else 语句
switch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值