java复习

Posted zxbaoer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java复习相关的知识,希望对你有一定的参考价值。

一、数据类型与运算符

1.标识符:要用字母、下划线、美元符号、人民币符号、数字、驼峰命名法 定义变量不能使用关键字

2.java八大基本数据类型:byte short long int boolean double float char

3.运算符:1赋值运算符 = 2算数运算符 ++ -- += -= 3位运算符 & | << 4关系运算符< > <= >= 5逻辑运算符 && || ! 6条件运算符 三元表达式 5<7?5:7

4基本数据类型的转换

自动转换类型:数据类型小的转为数据类型大的

强制转换类型:数据类型大的转为数据类型小的

二、流程控制

选择结构 if if()else{} swthis

循环结构 while(){} do{} while(); for(){}

多分支if语句 if(if()else if()else{})else{}

多重循环语句 for(){for(){}}

跳转语句 break结束循环;couture跳出循环开始新的循环;return跳出方法;

三、数组

数组的定义 int[] nums = nwe int[4] 或者 int[] nums ={3,4,1,3};

数组的遍历 外层循环一次里层循环一遍 冒泡排序 外层循环N-1 内层循环N-1-a for(int a =0 ;a<nums.length-1;a++){for(int b = 0;b<nums.length-1;b++){交换位置}}

Arrays.sort(数组名);可以将数组升序排列

二维数组 int[][] nums = new int[][]

四、面向对象

类与对象的关系 类是对象的抽象,对象是类的具体

方法重载 :在同一个类中,方法名相同,参数不同,与访问修饰符和返回值无关

方法重写 :子类继承父类,方法名相同,参数相同或者参数是子类,返回值相同或者是子类,访问修饰符不能严与父类,抛出的异常不能多于父类

构造方法 :访问修饰符 没有返回值 方法名与类名相同

封装:private 修饰符对属性影藏 使用set/get方法 在set方法中定义变量 封装的好处是提高代码的安全性

五、继承和多态

继承是把子类共性的属性方法提取到父类中 减少了代码

抽象类 没有方法体,子类必须实现抽象父类中的方法 或者子类也是抽象类

static 是静态 被static 修饰过得属性或者方法可以用类名直接调用

向上转型 父类名 变量名 = new 子类名(); 父类引用指向子类对象

向下转型 转换名 变量名 = (转换名)对象名

 

 

 

第一本书:java基础和面向对象

第二本书:java高级API编程

第三本书:mysql数据库

第四本书:javaWeb

第五本书:SSM

第六本书:SSH

第七本书:大数据Hadoop/微服务

 

1、初识java

(1) 安装JDK

① 1.6,1.7,1.8,1.11

② 面试题:jdk1.71.8之间的区别/1.8升级了什么?

(2) 配置环境,

JAVA_HOME %JAVA_HOME%in

(3) 开发工具

① MyEclipse Eclipse IDEA STS

2、变量与数据类型

(1) 八大基本数据类型:byte,short,int,long.float,double,char boolean兼容

(2) 自动类型转换,强制类型转换(类型必须能够)

String aa = ‘a‘;×

(3) 赋值、算术、关系、逻辑、位运算、条件运算

int a = 1;

int sum = (a++) + (++a) + (a--) + (++a) + (a++) + (--a) + (a++);

基本数据类型判断相等用==

引用型数据类型比较值相等用equals

String a = “abc”;

String b = “abc”;

String c = new String(“abc”);

String d = new String();

面试题:==equals的区别:

==通常用作基本数据类型的等值比较,equals是引用型数据类型的等值比较。==比较的是地址是否是同一个,equals比较的是两个地址所指向的值是否相等

& &&  | || ! <<   >>  <<<   & |

面试题:&&&的区别:

都可以做逻辑运算符,&无论第一个表达式是否为true,都会判断第二个表达式,&&当第一个表达式是false,则第二个表达式不会判断

&可以做位运算符

面试题:6&7=6   6|7=7

面试题:如何以最快的效率算出2的三次方:2<<2
条件?truefalse

常量:final

3、流程控制:

选择结构:if else  switch(){case 常量: break;}

循环结构:while  do{}while(); for()

循环四个要素:开始、条件、循环体、循环退出

控制循环的关键字:breakcontinuereturnSystem.exit(0)

4、数组:

冒泡排序:

for(i<N-1){for(j<N-i-1){交换位置}}

5、类和对象

类是对象的抽象,对象是类的具体。万物皆对象。

对象(属性+方法)

6、方法

(1) 方法四个要素:访问修饰符,返回值类型,(方法名,方法参数),方法体

(2) 方法的访问修饰符:publicprotect,默认,private

(3) Static修饰方法:对象和类名都可以调用

(4) 方法的重载

面试题:overrideoverload的区别:

前提:重载必须是同一个类中,重写必须有继承关系

重载与访问修饰符和返回值类型无关,重写的访问修饰符不能严于父类,返回值类型必须与父类相同或者是其子类。

重载的方法参数项必须不同,重写的参数项必须相同或是其子类。

重写不能抛出比父类更多的异常。

构造方法的作用:创建对象

7、封装

(1) 步骤:私有化属性,生成属性的setter/getter方法,在方法中加入限制...

(2) 意义:提高代码的安全性

8、继承:

(1) 将子类共有的属性和方法提取到父类中

(2) 父子类的构造方法的执行顺序:先父类后子类

(3) 意义:提高代码的可重用性

9、多态:

(1) 概念:同一个引用类型使用不同的实例,执行不同的操作

(2) 实现多态的三个要素:

① 有继承关系

② 子类重写父类方法

③ 父类引用指向子类对象

实现多态的两种方式:

父类作为方法返回值、父类作为方法参数

意义:提高代码的可扩展性,减少代码量,简化编程

 

面试题:你怎么理解面向对象的三大特征?

10、抽象与接口:

面试题:抽象与接口的区别?

抽象:class类,接口是interface接口

相同:都不能被实例化对象,都可以有抽象方法,抽象方法都不能有方法体

不同:抽象类中可以有非抽象方法,在jdk1.8之前,接口只能有抽象方法,1.8开始之后,如果有非抽象方法,必须是default修饰

接口中的变量都是静态常量,抽象类中可以有普通成员

抽象类中可以有普通方法,接口中的方法都是static静态方法

一个类只能继承一个抽象类,但可以实现多个接口

11、异常:

面试题:常见的异常有哪些?

空指针异常java.lang.NullPointerException

类无法加载异常

类型转换异常

Sql异常

IO异常

数组越界

方法无法加载

 

 

12、集合框架

(1) CollectionMapListSetArrayListLinedListHashSetHashMapHashTable

(2) Listmapset各自存储特点,ArrayListLinkedList区别,线程安全

13、实用类

(1) 包装类:什么是拆箱?什么是装箱?

(2) StringindexOf(),split(),charAt(),subString(),trim(),equals..()

(3) StringBuffer,StringBulider,String区别

14、IO

(1) 字节流,字符流,输入流,输出流,二进制流,序列化,反序列化

(2) BufferedReader....

15、网络编程

(1) UDPTCP区别

① UPD就是电报(速度快,安全低)TCP就是打电话(速度慢,安全高)

② 三次握手,四次握手,Socket

③ WebSocket

16、多线程

(1) 继承Thread类,实现Runnable接口

(2) 重写run方法,调用start方法,sleep()join()ye..d

(3) 线程的几种状态:创建,就绪,运行,阻塞,死亡

17、XML

(1) DOM,DOM4J,SAX..

 

18、MySQL

(1) 端口号:3306

(2) innerDBMyIsAm

(3) 数据库结构化语言

① DCL控制commitrollback

② DDL定义,createalterDrop

③ DML操作,增删改

④ DQL查询,select

(4) 左连接(防止数据丢失,用的最多),内连接,自连接

(5) Like 模糊查询 like ‘%#{aaa}%’;     like ‘%${aaa}%’

(6) Limit 下标,页面大小

(7) Group by ,order by ,having

(8) 三大范式

① 列不可再分

② 在第一范式的前提下,每张表只描述一件事情

③ 在第二范式的前提下,除了主键以外,所有的列都不传递依赖于主键

(9) 视图,索引

19、前端

(1) 选择器

(2) JS事件:点击事件,聚焦事件,鼠标移入移出,改变事件,input事件

(3) JQuery:选择器,事件,表单验证

(4) Ajax:原理,流程,方法:原生,ajaxgetpostgetJsonload

20、JSP

(1) 九大内置对象:pageoutrequestresponsesessionapplicationpageContextconfigexception

(2) 常用方法:pagerequestsessionapplication四个作用域

① SetAttribute/getAttribute

② RequestgetParametergetReqDisp...().forward(),

③ setCharacterEncoding,getSession,getContextPath

④ Session,getId(),setTimeInt...setMaxAge()单位s,默认30分钟web.xml

1) Session的生命周期:浏览器的打开表示session的开启,浏览器关闭则session失效,也可以设置手动失效,默认30分钟后,当前session失效

(3) 六大组成部分:指令,小脚本,表达式,html,注释,声明

① 注释:HTML注释<!--后台可见    脚本注释<%-- --%>后台不可见

(4) 转发和重定向区别:

① 转发携带数据,一次请求,前后地址不变request

② 重定向不携带数据,两次请求,前后地址发生改变response

(5) 请求方式:

① Get:数据量小,请求数据在url可见,不安全,速度快;通常超链接都是get请求

② Post:数据量原则上是无限的,请求参数不可见,安全,速度慢;通常form表单请求用post

(6) JDBC:贾琏欲执事

① Class.forName(“com.mysql.jdbc.Driver”);

② String url=”jdbc:mysql://127.0.0.1:3306/kgcnews”;

③ Connection conn =

④ DriverManager.getConnection(url,”root”,”123456”);

⑤ String sql = “select * from news where id=?”;

⑥ PreparedStatement ps = conn.prepareStatement(sql);

⑦ Ps.setInt(1,1);

⑧ ResultSet rs = ps.executeQuery();

⑨ While(rs.next){...}

⑩ Rs.close();ps.close(),conn.close();

(7) 三层结构:表示层(view),业务逻辑层service,数据访问层dao

(8) 单例模式:懒汉式(线程不安全,有延迟加载),饿汉式(线程安全,无延迟加载除非使用静态内部类),枚举式

(9) 数据库连接池DBCP,C3P0Druid(阿里巴巴)

(10) 第三方控件

(11) EL表达式JSTL

(12) Servlet

① 生命周期

1) 创建实例(构造方法),初始化(init),服务(service:doGet,doPost),销毁(destroy)

② JSP的关系:Servlet在前,JSP在后

(13) 过滤器监听器

21Mybatis

① Mapper.xml,动态SQL

22Spring

② 两大核心机制:IOC/DIAOP

③ 控制反转/依赖注入:将对象的创建由程序本身转移到Web容器,进行统一管理

④ 面向切面编程:将散落在程序各个地方的公共部分,集中到一起处理/增强

⑤ Bean的五大作用域:Singletonprototype,requestsessionglobal session

⑥ 注入方式:settr注入,构造注入,P命名空间,注解

⑦ 增强类型:前置后置,异常处理,环绕,最终

⑧ 声明式事务:传播机制两个常用的

1) 默认值required,表示当前如果没有事务,就开启一个事务。如果当前有事务就在该事务中处理,多用多增删改

2) 针对查询用的是support,表示当前如果没有事务,就以非事务处理,如果当前有事务,就以该事务的方式处理。

3) 事务中的脏读,幻读,不可重复读

23、SpringMvc

(1) MVC模式,SpringMVC模式

(2) 配置文件:控制器Bean(注解),多视图解析器,适配器,文件上传,静态资源加载,拦截器,全局异常处理,中文乱码,日期格式

(3) Ajax@ResponseBody


以上是关于java复习的主要内容,如果未能解决你的问题,请参考以下文章

java复习总结3

Java复习---基础复习

Java容器(ListSetMap)知识点快速复习手册(下)

Java基础复习-流程结构篇

java复习总结2

[Java复习] MySQL复习