数据结构
从main方法开始,Java是一个面向对象的语言,所以有class的概念(一切必须是对象,一切必须有类)。类.Java文件里面可以有,只能有一个公共的public class。
基础数据结构:
程序运行的本质是:运算数据和存储数据。
数据的存储分为变量和常亮两种类型。
变量:
内存中的一个空间,用于存储数据
开辟这块空间:声明
1.变量的名称
2.初始化的值,没有赋值,系统默认给空值
3.存储的数据类型,系统决定给你分配多大的内存空间–1字节=8位二进制数,变量统一存储在内存的栈中
存储的数据:
1、数值本身
基本数据类型
A.数字
–整数
字节型byte,1个字节,-128~127
短整型short,2个字节,-32768~32767
整型int,4个字节
长整型long,8个字节
–小数
单精度浮点型float,4个字节
双精度浮点型double,8个字节
B.字符
字符型char
英文、汉字字符需要转换成二进制数字
注:字符集转换成数字的时候会存在编码的问题
ASCII 1个字节 0-127 A:65 a:97
GBXXXX 国标,支持汉字。2个字节(1个字节还是ASCII的原是字符,半角字符)
eg.GB2312 GBK(国标扩展)
BIG5 繁体中文
Unicode 最大4个字节,国标码
UTF-32 4个字节
UTF-16 2字节
UTF-8 可变长度
说明:为什么会出现乱码的情况?
因为编码格式和解码格式不一样。
C.是否的逻辑值(boolean)
布尔型,1个字节
2、存储的是堆区中对象的引用(内存地址)
引用数据类型
A.类
B.接口
C.数组
常量:
程序中不能改变的值称为常量。
java数组以及集合应用
3类数据容器
1.数组
初始化方法:
(1)静态初始化
(2)动态初始化
二维数组:
一维数组中存储的每一项都是一个数组,称之为二维数组。
2.集合
3.哈希表
HashMap 无序的,不可重复的
LinkedHashMap 有序的
存:put(key, value)
取:get(key);
获取长度:size()
遍历map
//方法一 迭代器,获取所有的key值
Set keys = m.keySet();
Iterator it = keys.iterator();
while(it.hasNext()){
Object k = it.next();
Object value = m.get(k);
System.out.println(k+"---->"+value);
}
//方法二 for each
for (Object key : m.keySet()) {
Object k = key;
Object value = m.get(k);
System.out.println(k+"---->"+value);
}
Java中的异常
1.Java中关于异常的分类
Java中所有的异常都是继承了一个可抛出的公用的类Throwable error
再细分为:
(1)发生概率较高,编译时异常exception
(2)发生概率比较低,运行时异常RuntimeException
2.自定义异常类,在进行减法运算时,当第一个数小于第二个数时,抛出“被减数不能小于减数”的异常
3.接收键盘输入的两个数字,进行加法运算,当输入的有非数字时,通过异常处理机制使程序正常运行
将输入的两个数字转为int类型,如果输入的不是数字,在转换类型的时候会抛出异常。这个时候可以捕捉异常。
Java中的IO
IO的概念:
输入流:将外部(文件或其他输入设备)的数据加载到内存
输出流:将内存中的数据存入到外部(文件或其他输出设备)
输入流
输入流分为字节输入流和字符输入流
字节输入流
一个字节一个字节的,InputStream
文件字节读取流:FileInputStream