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.7和1.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
条件?true:false
常量:final
3、流程控制:
选择结构:if else switch(){case 常量: break;}
循环结构:while do{}while(); for()
循环四个要素:开始、条件、循环体、循环退出
控制循环的关键字:break;continue;return;System.exit(0)
4、数组:
冒泡排序:
for(i<N-1){for(j<N-i-1){交换位置}}
5、类和对象
类是对象的抽象,对象是类的具体。万物皆对象。
对象(属性+方法)
6、方法
(1) 方法四个要素:访问修饰符,返回值类型,(方法名,方法参数),方法体
(2) 方法的访问修饰符:public,protect,默认,private
(3) Static修饰方法:对象和类名都可以调用
(4) 方法的重载
面试题:override和overload的区别:
前提:重载必须是同一个类中,重写必须有继承关系
重载与访问修饰符和返回值类型无关,重写的访问修饰符不能严于父类,返回值类型必须与父类相同或者是其子类。
重载的方法参数项必须不同,重写的参数项必须相同或是其子类。
重写不能抛出比父类更多的异常。
构造方法的作用:创建对象
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) Collection、Map;List,Set;ArrayList,LinedList。HashSet,HashMap,HashTable
(2) List、map、set各自存储特点,ArrayList和LinkedList区别,线程安全
13、实用类
(1) 包装类:什么是拆箱?什么是装箱?
(2) String:indexOf(),split(),charAt(),subString(),trim(),equals..()
(3) StringBuffer,StringBulider,String区别
14、IO流
(1) 字节流,字符流,输入流,输出流,二进制流,序列化,反序列化
(2) BufferedReader....
15、网络编程
(1) UDP、TCP区别
① 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) innerDB,MyIsAm
(3) 数据库结构化语言
① DCL控制commit,rollback,
② DDL定义,create,alter,Drop
③ 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:原理,流程,方法:原生,ajax,get,post,getJson,load
20、JSP
(1) 九大内置对象:page,out,request,response,session,application,pageContext,config,exception
(2) 常用方法:page,request,session,application四个作用域
① SetAttribute/getAttribute
② Request:getParameter,getReqDisp...().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,C3P0,Druid(阿里巴巴)
(10) 第三方控件
(11) EL表达式JSTL
(12) Servlet
① 生命周期
1) 创建实例(构造方法),初始化(init),服务(service:doGet,doPost),销毁(destroy)
② 跟JSP的关系:Servlet在前,JSP在后
(13) 过滤器监听器
21、Mybatis
① Mapper.xml,动态SQL
22、Spring
② 两大核心机制:IOC/DI、AOP
③ 控制反转/依赖注入:将对象的创建由程序本身转移到Web容器,进行统一管理
④ 面向切面编程:将散落在程序各个地方的公共部分,集中到一起处理/增强
⑤ Bean的五大作用域:Singleton,prototype,request,session,global session
⑥ 注入方式:settr注入,构造注入,P命名空间,注解
⑦ 增强类型:前置后置,异常处理,环绕,最终
⑧ 声明式事务:传播机制两个常用的
1) 默认值required,表示当前如果没有事务,就开启一个事务。如果当前有事务就在该事务中处理,多用多增删改
2) 针对查询用的是support,表示当前如果没有事务,就以非事务处理,如果当前有事务,就以该事务的方式处理。
3) 事务中的脏读,幻读,不可重复读
23、SpringMvc
(1) MVC模式,SpringMVC模式
(2) 配置文件:控制器Bean(注解),多视图解析器,适配器,文件上传,静态资源加载,拦截器,全局异常处理,中文乱码,日期格式
(3) Ajax,@ResponseBody
以上是关于java复习的主要内容,如果未能解决你的问题,请参考以下文章