Java
- 所有的Java程序都运行在JVM里(Java虚拟机)
- 堆:存放主要数据。(先进先出)
窄:数据的引用。(先进后出)
二.变量
- int a = 1;声明变量
- 数据类型分:基本数据类型,引用数据类型
基本数据类型分:数字,非数字(char,boolean)
数字分:整数(byte,short,int,long),小数(float,double)
引用数据类型分:类(class),接口(interface),数组(array)
3.int 占用空间:4字节 取值范围:-2的31次方~2的31次方-1
4.==双等于号只能用来判断基本数据类型
5.&&逻辑与:前一个条件不成立,则后一个条件不执行(因为前一个条件不成立的话,结果一定是false)
&按位与:无论钱一个条件成不成立,后一个条件都会执行(按部就搬的执行)
6.||逻辑或:前一个条件成立,则后一个条件不执行(因为前一个条件成立的话,最终结果一定是true)
|按位或:无论前一个条件成不成立,后一个条件都会执行(按部就搬就行)
三.if判断
- if(条件){
代码块
} else{
条件不成立则执行
}
2.switch选择:
switch(条件){
case 1:
break;
case 2:
break;
defult:
break;
}
四.循环
- 什么时候做什么事,因为循环不能一直不停
- 每个循环里都有循环变量,大多数情况,循环变量的作用是记录循环次数
- 可预知循环次数的循环,或基于数字递增进行循环,这种情况通常使用for循环
1.for(声明循环变量;循环条件;迭代(自增)){
被循环的代码块
}
2 .while(条件){
被循环的代码块
}
3.循环中遇到break;结束循环
continue;跳过本次循环
return;结束方法的执行
五.数组
- 数组是存储同一组数据类型多个元素的集合,也可以看成是一种容器
- 看见[ ],就是数组
- 数组名[下标] 数组里对应位置的变量的名字
- array.length数组的长度
Arrays.toString展示数组的所有元素
Arrays.sort(array);升序
六.方法
- 修饰符 返回值类型 放法名(参数类型 参数名){
代码块
方法体
代码块
return 返回值(有运行结果就写return后面,没有就不写);
}
2.调用方法:方法名 变量名 = new 方法名();
3.在编写方法时必须使用的数据,但只知道类型,又不确定或不知道是什么内容,这种数据可以定义为参数。
4.传递参数时三个规则:1.数量一样 2.顺序一样 3.类型一样
七.API
- API的常用类:1.object 2.String 3.java.util 4.包装类
- object是所有类的基类,所有类都直接或者间接的继承object类.object是上帝类
- Str.isEmpty() 判断字符串是否为空
Str.length() 获取字符串的长度
Str.equals(str2) 判断字符串是否相等
Str.equalsIgnoreCase(str2) 不区分大小写,判断字符串是否相等
Str1.charAt(1) 获取某下标的char元素
Str.substring(2) 从开始截取到结束
Str.substring(1,4) 从开始截取到结束,包头不包尾
Str.replace(‘据’,‘好’) 替换字符串
Str2.trim() 去掉字母首位空格
- 方法名 作用 返回值类型
HashCode 获取对象chash值 int
ToString 将对象信息变为字符串返回 String
equals(Object obj) 判断两个内存地址是否一样 boolean
GetClass() 获取类名 object
5.string 和 StringBuffer的区别:
内存操作不同:
string是每次进行更改都会产生一个新对象
StringBuffer不会产生新的对象而是原有的对象上进行更改
注意事项:
StringBuffer是线程安全的所以对象操作会比较慢,在并发处理的时候,会有阻塞现象
6.装箱:把基本数据类型封装成包装类
拆箱:将包装类中的包装基本数据提取出来
7.时间格式转换类:
SimpleDateFormat s = new SimpleDateFormat(“yyyy-M-d h:mm:ss”);
8.获取系统档当前时间:
Date date = new Date();
sout(date);
9.0 - 1之间double类型的随机数:
sout(math.random());
sout(cint(Math.random() * (60-30))+30);
八.集合
1.
2.user.add(3,“名字”) 增加
User.remove(3) 删除
3.com.xinzhi.text.user 包名+类名=完全限定名
4.List集合特点:集合中的元素是有序可重复的
5.set集合特点:集合中的元素是无序不可重复的(值唯一)
6.迭代器:Iterator<User(类名)>iterator = userset.iterator();
7.iterator.hasNext() 如果还存在下一个没被访问的数据,则返回true,反之返回false
8.增强型循环for-each:
for(User u : userset){
sout(u.getName());
sout(u.getPwd());
}
9.Map集合:无序的
- map中key是无序,唯一的,所以keyset方法得到的时候所有key的set集合
- map中value是无序的,不唯一的,所以values方法得到的是所有value的Collection集合
九.IO流
- io流是一个管道,用完之后一定要关闭
I/O(Input/Output)流在计算机编程中的作用是实现程序与外部环境(如文件系统、网络、内存等)之间的数据交换。它允许程序从外部读取数据(输入)或将数据写入外部(输出)。
以下是I/O流的主要作用:
1. **文件操作:** 通过文件I/O流,程序可以读取文件中的数据(输入流)或将数据写入文件(输出流)。这使得程序能够读写本地文件系统中的数据,实现文件的创建、修改、删除等操作。
2. **网络通信:** 通过网络I/O流,程序可以在网络上进行数据的读取和发送。这对于网络通信应用如客户端-服务器系统、Web应用等是至关重要的。
3. **键盘和屏幕交互:** 通过标准输入流(System.in),程序可以从键盘读取用户输入。通过标准输出流(System.out),程序可以将数据输出到控制台或其他输出设备。
4. **内存操作:** 通过内存I/O流,程序可以读取和写入内存中的数据。这对于处理大量数据或与其他进程共享数据很有用。
5. **数据处理:** I/O流也可用于数据处理,例如通过串行化对象将对象写入文件,以及从文件中读取对象。这对于持久性存储和数据传输很有用。
6. **图形用户界面(GUI):** 在GUI应用中,I/O流用于处理用户界面的事件和数据。例如,读取用户在文本框中输入的文本,或将数据显示在图形界面上。
7. **数据库访问:** 通过数据库I/O流,程序可以从数据库中检索数据或将数据写入数据库。这是与数据库进行交互的重要手段。
总的来说,I/O流是实现程序与外部世界数据交换的通用机制,为各种应用场景提供了一种灵活、通用的数据输入输出方法。
十.数据库
- DML语言引导词:INSERT(增)
DELETE(删)
UPDATE(改)
DQL语言引导词:SELECT(查)
DCL语言引导词:GRANT(授权)
REVOKE(调用)
DDL语言引导词:CREATE(创建)
ALTER(修改)
DROP(撤销)
DDL(Data Definition Language)数据库定义语言,用来定义数据库对象:库、表、列等
DML:数据操作语言,用来定义数据库记录(数据)
DCL:数据控制语言,用来定义访问权限和安全级别
DQL:数据查询语言,用来查询记录(数据)
2.SQL语句:
- 增加:insert into 表名 values(列值1,列值2,……)
- 删除:delete from 表名 where 条件
- 修改:update 表名 set 列名1=新值,列名2=新值...where 条件
- 查询:select * from 表名 //查询这个表
Select 列名1,列名2... From 表明 //只查询列名1,列名2....
Select * from 表名 where 列表1=“...” //只查询列名1为“...”的
Select * from 表名 where age>=19 and age<30 //只查age为19~30之间的
Select * from 表名 order by 列名 asc //正序排序
Select * from 表名 order by 列名 desc //倒叙排序
模糊查询:
Select * from 表名 where 列名 like ‘%名%字%’
分页查询:
Select * from 表名 limit 0,3
Select * from 表名 where sex = ‘男’ order by age limit 0,3 //以age正序排序查询三个
内连接:
Select * from 表名1 名1 ,表名2 名2 where 名1.表名2id = 名2.id
Select * from user u inner join job j on u.jobid = j.id
外连接:
左外连接:
Select * from user u left join job j on u.jobid = j.id
右外连接:
Select * from user u right join job j on u.jobid = j.id
聚合函数:
Select count(1) from user //求这个表的数量
Select sum (age) from user //求和
Select avg(age) from user //求平均值
3.第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据
第一范式就是拆列
第二范式就是拆表
第三范式就是列与列之间不存在关系
十一.JDBC
- DriverManager 依据数据库的不同,管理JDBC驱动
- Connection 负责连接数据库并担任传送数据的任务
- Statement 由Connection产生,负责执行SQL语句
- ResultSet 负责保存Statement执行后所产生的查询结果
- 加载或注册驱动类
- DriverManager通过被加载的驱动类创建数据库连接
- 编写SQL语句
- 根据连接创建发送SQL语句的对象
- 发送SQL语句到数据库,连接返回的结果
JDBC简介:
- 定义:JDBC是Java语言访问关系数据库的一种标准接口,提供了一组用于执行SQL语句、访问数据库的Java API
- 体系结构:
- JDBC API:提供了Java程序与数据库交互的标准接口
- JDBC Driver:实现了JDBC API,允许Java应用程序与特定数据库进行通讯
1.JDBC的概念:
- JDBC是一种用于执行SQL语句的JAVA API,可以为多种关系型数据库提供统一访问,他是由一组用JAVA语言编写的类和接口组成的。
- JDBC的作用:可以通过JAVA代码操作数据库
2.JDBC的本质:
其实就是JAVA官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!