VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 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)
  • 字符
    • char - 2byte
    • (拓展 ASCII编码-1字节、UTF-8编码-3字节、Unicode-2字节)
    • (拓展:\u0000 转义字符)
      • \b
      • \n
      • \r
      • \t
      • \\
      • \"
      • \'
  • 布尔值
    • 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
    • break 跳出循环
    • continue 终止当此循环,继续下次循环
      • (带标签的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(有序,可以重复)
    • ArrayList - 全部常用
      • add
      • remove
      • contains
      • size
    • LinkedList(链表) - 常用
      • getFirst()
      • getLast()
      • pop()
      • push()
      • removeFirst()
      • addFirst
      • ...
    • 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、游戏帧的概念

相关教程