Java从入门到精通复习
第一篇:Java基础
unit1 初识Java
定义:面向对象,跨平台,可编程,语言
概要:JVM-Java虚拟机 JRE-Java运行环境 JDK-Java程序开发工具包
版本:SE EE ME
搭建:JDK下载-配置环境-测试
unit2 熟悉Eclipse
添加断点:双击前面
程序调试:F6单步跳过 F5单步跳入
unit3 Java语言基础
主类:psvm----主方法 PS:先调用再执行
基本数据类型:byte short int long float double char boolean
变量常量:声明常量--final 成员变量:static 局部变量
标识符关键字:user_name
运算符:赋值,算数,比较,自增自减,逻辑,位运算符,三元运算符
赋值= 相等== 三元:条件式?值1: 值2
数据类型转换:隐式:byte<shourt<int<long<float<double,低-----》高
显式:int a = (int) 12.3; 强制性
注释:// /* */ /** */
添加注释:Window->Preference->Java->Code Style->Code Template ,然后展开Comments节点就是所有需设置注释的元素了!
(1)输入“/**”并回车。
(2)用快捷键 Alt+Shift+J(先选中某个方法、类名或变量名)。
(3)在右键菜单中选择“Source > Generate ElementComment”。
unit4 流程控制
复合语句
条件语句:if(*){
&}else{
&
}
switch(*){
case 常量值1:
语句块1
[break;]
default;
语句块n+1:
[break;]
}
循环语句:初始化表达式1;
while(布尔表达式2){
循环体3;
步进表达式4;
} //类似for循环
while do{&}while(*); for(a;b;c){&} foreach(*){&}
unit5 字符串
String类:char[]型数组 byte[]型数组
字符串常量池:String Pool ,放在堆里
连接字符串--获取字符串信息--indexOf() lastIndexOf() charAt()
String操作:substring(截取子字符串) trim(去除空格) str.replace(替换) startsWith(判断) endsWith(替换)
equals(判断地址相同) equalsIgnoreCase(忽略大小写) split(分割) format(格式化)
正则表达式:检测某一个字符串是否满足某一格式
字符串生成器:append() insert() delect()
IDEAL快捷键:CTRL+空格 Eclipse快捷键:
unit6 数组
定义:引用数据类型
运用:先声明,再new,再访问
格式:int arr[]; int brr[] = new int [6];
二维数组创建:int crr[][] = {{1,2},{3,4}};
操作:遍历,for循环:
int drr[] = {{1},{2,3},{4,5,6}};
填充fill 排序sort 复制copyOf 查询binarySearch
排序算法:冒泡排序 直接选择 P115
unit7 类和对象
面向对象:类:模板,抽象 对象:实体,具体
成员方法,成员变量 动态行为,静态属性
类实质上是封装对象属性和行为的载体
特征:封装,继承(复用)--->多态(抽象类和接口)
类:成员变量private 成员方法没有static 局部变量
权限修饰符:private protected public
类的构造方法:用来创建对象,每当类实例化一个对象的时候,类就会自动调用构造方法
静态变量,常量,方法。。
对象:导包--创建--使用,Preson p = new Person(); p.eat();
this关键字:this.name = name; 用this可以调用成员变量和成员方法,因为局部变量可能会掩盖了成员变量
unit8 包装类,Number
Integer,Boolean,Byte,Character,Double,Number
unit9 数字处理类,NumberFormat
Math,Math.random()随机数
第二篇 :Java核心
unit 10 接口,继承,多态
继承:extends,父类的拓展,添加新方法
super关键字:调用父类的构造方法和成员方法
局部变量 本类成员变量 父类成员变量
num this,num super.num
Object类:鼻祖!! getClass() toString() equals()
对象类型转换:向上转换 向下转换
父类引用指向字类对象,安全 将父类对象还原成原本的字类对象,不安全
Animal animal = new Cat(); Cat cat = new Cat();
instanceof操作符:判断对象类型,my instanceof peroson
方法重载:Overload,同名不同参数
多态:父类引用指向字类对象,”我“既是学生,也是父母的孩子
抽象类:abstract,必须由字类覆盖重写父类才有意义
接口:interface,公共的规范标准
unit11 类的高级特性
Java类包:import导包
final变量:他一般定义常量,全局常量:public static final final方法:不可以覆盖 final类:没有字类,不可以extends
内部类:内用外随意访问,反之一定要借助内部类对象才🆗,内部类向上转型为接口
局部内部类:P208,没写!!!
匿名内部类:
静态内部类:
unit12 异常处理
try {&} catch(Exception e) {&},记录到日志中去
throws Exception {&}
finally语句块:用于资源释放回收
补充:Java异常类结构
1 try、catch、finally语句中,在如果try语句有return语句,则返回的之后当前try中变量此时对应的值,此后对变量做任何的修改,都不影响try中return的返回值
2 如果finally块中有return 语句,则返回try或catch中的返回语句忽略。
3 如果finally块中抛出异常,则整个try、catch、finally块中抛出异常
unit 13 Swing程序设计
Swing + AWT = 图形用户界面
监听事件:事件源+事件+监听程序 addXXListener() removeXXListener()
动作事件监听器 焦点事件监听器
unit14 集合类,util包下
遍历集合:采用迭代器iterator ,
Collection<String> list = new ArrayList<>();//实例化集合类对象
Iterator<String> it = list.iterator();//创建迭代器
Collection接口:层次接口 的根节点
List集合:get() set()
Set集合:Collection对象不可以重复
Map集合:Map<K, V>
unit15 I/O输入输出------io包下
在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从流中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。
类InputStream, OutputStream, Reader 和Writer
File类:唯一代表磁盘文件本身的
Buffer:带缓存
unit16 反射
访问,检测,修改描述Java对象本身的信息
访问构造方法:Constructor 访问成员变量:Field 访问方法:Method
@Annotation,注解注释,定义用@interface,@Target,@Retention(访问)
unit18 枚举类型与泛型
枚举:取代以往编译常量的方式,在编译时候可以检查程序
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的
public static fianl = public enum
numSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。
成员方法:values数组,valueOf枚举实例, compareTo比较,ordinal位置索引
构造方法:加private
泛型:广泛的类型,向上转型向下转型
定义:类名<T> ,所以说泛型只是一种类型的规范,在代码编写阶段起一种限制。
class 类名<T extends anyClass> extends
是约束了泛型是向下继承的
<?>通配符
和<T>
区别是<?>在你不知道泛型类型的时候,可以用<?>通配符来定义,类型通配符
unit19 多线程
多线程,并发思想
n个线程=一个进程,类似于任务管理器
继承Thread类, extends Thread{&} public void run(){&}
Runnable接口, extends Object implements Runnable{&}
线程生命周期:出生----就绪----执行-----等待----休眠----阻塞---死亡
线程同步机制:线程安全,线程同步机制,synchronized(锁对象){可能出现线程安全问题的代码,里面可以try catch一下}
unit20 网络通信
IP协议,本机IP地址; TCP,UDP协议
端口大于套接字socket
查看端口连接状态:cmd下的“netstat -an”
unit21 数据库操作
数据库类型:层次型,网状型,面向对象型,关系型
SQL语句:Structure Query Language
DDL:Definition,定义,create,alter,drop
DML:Manipulation,操纵,select,insert,update,delete
DCL:Control,控制,grant,revoke
TCL:Transaction Control Language,事务控制语言,commit,rollback
例子:select * from sys_user where sex='女' order by age;
insert into sys_user values(2,'小明','男','销售部');
update sys_user set age=23 where id=2;
delete from sys_user where id=2;
JDBC:接口+纽带,Java-----JDBC---JDBC驱动程序------数据库
几个接口:Connection,Statement,PreparedStatement,DriverManager,ResultSet
连接数据库:1.加载数据库驱动程序 2。创建Connection对象 3.执行SQL语句 4.操作完成销毁对象,释放与数据库的连接
发送SQL语句:Statement sql = con.createStatement();
处理查询结果集:ResultSet res = sql.executeQuery("select * from sys_user");
顺序查询,模糊查询:%代替0或多个字符,_代替一个字符,通配符%
预处理语句:对于JDBC,通过Connection对象的preparedStatement(String sql)方法对SQL语句进行预处理,生成数据库底层的内部命令,并将该命令封装在preparedStatement对象之中,通过调用该对象的相应方法执行底层数据库命令
补充:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
unit1 06 断点调试与数据加密
1.运行:右键 -- Debug as -- Java Application
2.看什么:F6----》Debug,Variables,ForDemo,Console
3.step into:F5 step over:F6 step return:F7 resume恢复执行:F8
4.方法进入的第一条有效语句加断点
5.数据加密:arr[x] += 5;
6.键盘录入:Scanner sc = new Scanner(System.in);
接收数据:int number = sc.nextInt();
unit2 19 异常处理
1.Throwable是Java 语言中所有错误或异常的超类,即祖宗类。
2.子类:Error,Exception, 子子类:RuntimeException
3.如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行并且还终止了程序,异常后面的代码将不在执行
4.
5.Throwable常用方法:
String getMessage() 返回此 throwable 的详细消息字符串
String toString() 返回此 throwable 的简短描述
void printStackTrace() 打印异常的堆栈的跟踪信息
6.finally:组合try catch,用于释放资源等收尾工作
7.异常分类:
A: 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理
B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.
8.自定义异常:
* throws:处理异常的一种方式,把异常抛出,由调用者来处理:
public static void checkScore(int score) throws Exception {
* throw:制造异常的方式,并且结束方法:throw new RuntimeException("考试成绩不符合要求"
如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws)
source---generate construction from superclass(根据父类生成构造)
* 如何自定义一个异常类呢?
* 非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可
unit3 补充:递归
1.递归,指在当前方法内调用自己的这种现象
2.