• 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

  • 相关阅读:
    WordPress搭建的新博客 www.douzujun.club
    调用weka模拟实现 “主动学习“ 算法
    危险!80% 用户正在考虑放弃 Oracle JDK…
    最新!Dubbo 远程代码执行漏洞通告,速度升级
    Tomcat 又爆出高危漏洞!!Tomcat 8.5 ~10 中招…
    Spring Boot 启动,1 秒搞定!
    为什么要重写 hashcode 和 equals 方法?
    详解 Java 中 4 种 IO 模型
    详解GaussDB bufferpool缓存策略,这次彻底懂了!
    【API进阶之路6】一个技术盲点,差点让整个项目翻车
  • 原文地址:https://www.cnblogs.com/zxbaoer/p/10383621.html
Copyright © 2020-2023  润新知