JavaSE 基础大纲

Java基础(JavaSE)

1、Java 基础语法;

1、1 注释
  • 行内注释 //

  • 多行注释 /**/

  • 文档注释 /** */ - javadoc 生成帮助文档

1、2 标识符
  • 关键字

1、3 数据类型
1、基本数据类型:四类八种
  • 整数

    • byte - 1byte

    • short - 2byte

    • int【默认】 - 4byte

    • long - 8byte

    • (拓展:进制转换 二进制 - 0b -、十六进制 - 0x 、8进制 - 0)

  • 浮点数

    • float - 4byte

    • double【默认】- 8byte

    • (拓展 - 金融计算不能使用 float和double ,要使用 BigDecimal)

  • 字符

    • \b

    • \n

    • \r

    • \t

    • \\

    • \"

    • \'

    • char - 2byte

    • (拓展 ASCII编码-1字节、UTF-8编码-3字节、Unicode-2字节)

    • (拓展:\u0000 转义字符)

  • 布尔值

    • boolen- 1位(0或1)

    • (拓展 if(a) )

2、引用数据类型
  • 接口

  • 数组

3、类型转换
  • 自动类型转换

    • 低转高(子类转父类)

  • 强制类型转换

    • 高转低(父类转子类) - 格式:(低)高 - (int)long

    • 高低的概念在数字里面就是字节数,在类里面就是 子类 - 父类

1、4 变量和常量
1、type varName [= value];
2、作用域
  • 类变量 - static 修饰变量(静态变量)

  • 实例变量 - static去掉 (在类内方法外)-全局变量

  • 局部变量(成员变量)- 方法内

3、常量
  • final MAX_A = 10;常量必须全部大写,单词隔开用下划线

4、命名规范
  • 见名知意

  • 驼峰命名 - 用在变量和方法上

  • 类命名 - 是首字母大写+驼峰命名

  • 常量 - 大写+下划线

  • 不要使用拼音和中文

1、5 运算符
1、算数运算符:+ 、- 、* 、/、%、++、--
2、赋值运算符:=
3、关系运算符:>、<、>=、<=、==、!= 、instanceof
4、逻辑运算符:&&、||、!
5、位运算符:&、|、^、~、>>、<<、>>>
6、条件运算符:?:
7、扩展运算符:+= 、-=、*=、/=
1、6 JavaDoc
1、JDK 帮助文档
2、命令 javadoc 生成文档
  • @author 作者

  • @Version 版本

  • @Since 最早支持哪个java版本

  • @param 参数

  • @return 返回值

  • @throws 抛出的异常

1、7 流程控制
1、Scanner 用户交互 System.in
2、顺序结构:自上而下的执行
3、选择结构
  • if 单选择结构

  • if - else 双选择结构

  • if - else if - else 多选择结构

  • switch

    • (JDK7 支持了String类型)

    • case穿透现象

    • break

    • default

4、分支结构(循环结构)
  • while:尽量避免死循环

  • do... while

  • for - 可计次数一般用for循环 ,不可计次数一般用while 循环

    • for(int i=0;i<100;i++)

    • 经典案例 - 99 乘法表

  • 增强for循环

  • break & continue

    • (带标签的continue 废弃的)

    • break 跳出循环

    • continue 终止当此循环,继续下次循环

    • return 结束方法的运行;

1、8 方法
1、什么是方法?- 语句块的集合
2、方法的定义
  • 修饰符 返回值 方法名(参数名){    return 返回值;}
3、方法的调用
  • 类名.方法

  • 对象.方法

4、方法重载
  • 名字相同,方法形参列表不同;

5、命令行传参 - 给mian 方法传递参数 (涉及JVM调优)
  • main 方法是自带了参数的,可以通过命令行的方式传递参数进运行程序;

1、9 数组
1、数组的定义
  • new int[5]

  • {1,2,3,4,5}

  • 数组必须是同一个类型

2、数组的使用
  • 通过下标拿到值

  • ArrayIndexoutofBounds - 数组下标越界异常

  • 通过增强for循环遍历

3、二维数组 :
  • int[ ] [ ]

4、Arrays类(工具类)
5、排序算法(第一个数据结构)
  • 冒泡排序

  • 选择排序

  • 插入排序

  • 快速排序

  • 归并排序

  • 希尔排序

  • 堆排序

  • 桶排序(基数排序)

2、面向对象:一切皆对象

2、1 类和对象
1、类是对象的抽象:模板Class;
2、对象是类的具体
2、2 构造方法
1、构造方法的重载
2、默认的无参构造
  • 如果手动定义了有参构造,就必须要手动加一个无参构造;

  • 单例模式,需要构造器私有;

2、3 new对象
1、栈存放引用,堆存放具体的对象
2、4 三大特性:封装、继承、多态
1、封装属性私有:get、set 方法;
2、继承
  • extends 继承关键字

  • Object 是所有类的老祖宗

  • 子类拥有父类的特性

  • 方法重写

  • this

  • super

  • Java 是单继承,只能继承一个父类,但是可以实现多个接口;

3、多态
  • 父类的引用指向子类的对象 Person person = new Student();

  • instanceof 关键字,如果匹配,可以进行类型之间的转换;

2、5 修饰符
1、public
2、protected
3、private
4、static
5、fina
6、abstract
2、6 接口
1、interface
2、特性:
  • 约束,只能定义方法名;

  • 子类实现接口必须重写其中的方法;

3、函数式接口:只有一个方法的接口,可以使用lambda表达式简化;
4、接口比抽象类更抽象;
  • 抽象类里可以有具体的实现,接口不能有方法的具体实现,实现交给实现类进行;

2、7 内部类
1、局部内部类
2、静态内部类
3、匿名内部类(重点) - 可以被lambda表达式简写;
4、普通内部类

3、异常;

3、1 Throwable 异常的总结口
1、Exception
  • 运行时异常(一般处理运行时异常)

    • 1/0

    • ClassNotFound

    • NullPoint

    • UnKnwoType

    • 下标越界异常

  • 编译时异常(检查型异常)

2、Error
  • AWT错误

  • JVM错误

    • StackOverFlow 栈溢出

    • OutOfMeory 内存溢出

3、2 处理异常,五个关键字
1、try{}
2、catch{} 先小后大
3、finally{}
4、throw 手动抛出异常
5、throws 方法抛出异常
3、3 自定义异常
1、继承Excpetion 类即可

4、I/O流;

4、1 字节流
1、输出:OutputStream
2、输入:InputStream
4、2 字符流(中文一定要用字符流)
1、Reader
2、Wirter
4、3 处理流
1、buffer
  • bufferInputStream

  • bufferOutputStream

  • bufferReader

  • bufferWriter

2、data
  • DataInputStream

  • DataOutputStream

3、转换流
  • InputStreamReader

  • OutputStreamWriter

4、Filter(4个)
5、Print
  • PrintWriter

  • PrintSteam

6、Object 流(4个)
  • ObjectInputStream

  • ObjectOutputStream

  • ObjectReader

  • ObjectWriter

7、序列化和反序列化
  • Serializable

  • transient(透明的)- 某一个属性时透明的,使用关键字就不会被序列化;

4、4 节点流
1、CharArrayReader、Writer、InputStream、OutputStream
2、StringReader、StringWriter
3、pipe(管道流) : PipedOutputStream
4、File()

5、集合(容器);

5、1 Collection(单列集合 - 对象集合)
  • List(有序,可以重复)

    • getFirst()

    • getLast()

    • pop()

    • push()

    • removeFirst()

    • addFirst

    • ...

    • add

    • remove

    • contains

    • size

    • ArrayList - 全部常用

    • LinkedList(链表) - 常用

    • Vector

    • Stack

  • Set(无序,不可重复)

    • HashSet - 一般常用

    • TreeSet

  • iterator 迭代器 遍历

5、2 Map(双列集合 - 键值对集合)
  • HasMap - 重点常用
    • JDK 1.7以前:数组+链表 ; JDK1.8之后:数组+链表+红黑树

  • TreeMao

5、3 Collections 工具类
5、4 泛型 <> ,约束作用,避免类型转换之间的问题;

6、常用类和工具类;

6、1 Object类
1、hashcode()
2、toString()
3、clone()
4、getClass()
5、notify()
6、wait()
7、equals()
6、2 Math类(数学运算)
6、3 Random类(生成随机数)
  • UUID类

6、4 File类
1、创建文件
2、查看文件
3、修改文件
4、删除文件
6、5 包装类
1、自动装箱和自动拆箱
6、6 Date类
1、Date
2、SimpleDateFormat
  • yyyy-MM-dd HH:mm:ss

3、Calendar - 日历类(建议使用)
6、7 String类 - 操作量较少
  • 不可变性 final

6、8 StringBuffer类 - 多线程数据量较大 - 效率低,安全
  • 可变长 - append()【append 可以链式编程】

6、9 StringBuilder类 - 单线程数据量较大 - 效率高,不安全
  • 可变长 - append()

6、10 问题
  • String str = "a"+1+2 a12

  • String str = 'a' + 1+2 具体的数值

  • String str = 1+2+ “a” 3a

7、反射与注解;

7、1 注解
1、元注解
2、内置注解
3、自定义注解
4、反射读取注解
7、2 反射
1、Class
  • newInstance();

2、类加载机制
  • 对象获取

  • 类获取

3、Method 获得方法
  • 通过反射获得方法对象,再通过invoke执行方法并传递方法参数, .invoke(参数类型 参数,参数类型 参数) - 因为方法存在重载,也需要写参数的类型

4、Field 获得字段
  • 通过反射get 获得 字段

  • .set(参数类型 参数) - 因为方法存在重载,也需要写参数的类型

5、Construct
  • newInstance(参数类型 参数); - 获取的时候需要传递参数的class类型

6 破坏私有关键字
  • setAccessible(true);

  • 就可以set 数据

7 性能分析
  • 正常new >检测关闭的反射>默认的反射

8\ 反射获得注解\泛型
9 \单例模式的探究
9 \Stream
11\ ForkJoin

8、网络编程;

8、1 IP
8、2 端口
8、3 Socket 编程
8、4 TCP
1、三次握手
2、四次挥手
8、5 UDP
1、无连接
2、Packet 以包发送
8、6 URL
8、7 聊天通信
8、8 文件上传

9、GUI编程(可选) -

9、1 AWT
1、Frame
2、事件
  • 监听事件

    • 鼠标监听事件

    • 键盘监听事件

    • 窗口监听事件

    • 文本框监听事件

    • 动作监听事件

9、2 Swing
1、文本框
2、标签
3、按钮
4、文本域
5、面板
6、布局方式
7、关闭窗口
8、列表
9、3 案例:贪吃蛇
1、Timer
2、键盘监听
游戏帧的概念">3、游戏帧的概念
(0)

相关推荐