没有合适的资源?快使用搜索试试~ 我知道了~
Java基础知识到进阶知识
资源推荐
资源详情
资源评论
基础
JDK、JRE、JVM之间的区别
JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资
源,包括Java编译器、Java运行时环境,以及常用的Java类库等
JRE( Java Runtime Environment) ,Java运行环境,用于运行Java的字节码文件。JRE中包括了JVM以
及JVM工作所需要的类库,普通用户而只需要安装JRE来运行Java程序,而程序开发者必须安装JDK来
编译、调试程序。
JVM(Java Virtual Machine),Java虚拟机,是JRE的一部分,它是整个Java实现跨平台的最核心的部
分,负责运行字节码文件。
我们写Java代码,用txt就可以写,但是写出来的Java代码,想要运行,需要先编译成字节码,那就需要编
译器,而JDK中就包含了编译器javac,编译之后的字节码,想要运行,就需要一个可以执行字节码的程
序,这个程序就是JVM(Java虚拟机),专门用来执行Java字节码的。
Java数据类型
基本数据-引用数据类型
基本数据类型有四类八种:
整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
浮点型:float(4字节)、double(8字节)
字符型:char(2字节)
布尔型:boolean(1位)
引用类型:类class、接口interface、数组[]
Integer和int区别
1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接
存储数据值
4、Integer的默认值是null,int的默认值是0
==和equals()的区别
运算符 " == "
1. 作用:既可以在 基本数据类型 中进行对比,也可以在 引用数据类型 中做对比
2. 比较的是 栈 中的值(基本数据类型比较的就是值本身,引用数据类型比较的是两个对象的地址值)
方法equals()
1. 作用:equals()只能作用两个 引用数据类型 (两个对象)
2. equals()本质上调用的依旧是==,但是根据重现规则可以表达不同的含义。equals()方法本质上调用
的是"==",但是是可以重写的
知识点
基本数据类型一般使用"==",如果需要使用equals那么可以将基本数据类型转换为对应的包装类
(int --> Integer)
默认情况下,对象的equals()是继承与Object,与"=="的相关相同,如果需要将自定义比较规则可以
重写equals()方法
String包装类就重写了equals()方法,比较的是两个字符串的内容而不是地址值
Java中String/Date/File/包装类都对equals都进行了重写,比较的是内容而不是地址值
Java中的两种相等,值相等和引用相等,引用相等就能推出值相等,值相等不能推出引用相等
String的常用方法
length() 获取字符串长度
charAt(int index) 返回下标对应的字符
indexOf() 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
lastindexOf(String str) 返回指定子字符串在此字符串中最后出现处的索引
subString() 截取字符串
split() 字符串分割
trim() 去除字符串两端空白
replace() 字符串替换
replaceAll() 全部字符串替换
isEmpty() 判断字符串是否为空
equals() 判断字符串内容是否相同(区分大小写)
comcat() 字符串拼接
toCharArray() 将String类型的字符串转化为char字符数组
toLowerCase() 将字符串转成小写字符串
toUpperCase() 将字符串转为大写字符串
String、StringBuild和StringBuffer的区别
1.线程安全性:
String:String是线程安全的,因为String是final修饰的类,是不可变的,所以是线程安全的。
StringBuffer: StringBuffer 是线程安全的,所有的公共方法都是同步的,这是通过在每个方法
上加上 synchronized 关键字实现的。因此,多个线程可以安全地共享同一个 StringBuffer 对
象。
StringBuilder: StringBuilder 不是线程安全的。它的方法没有使用 synchronized 关键字进行
同步,因此在多线程环境中使用 StringBuilder 可能会导致不确定的结果。
2.性能:
StringBuffer: 由于 StringBuffer 的方法是同步的,这意味着在多线程环境中,不同线程对同一
个 StringBuffer 对象的操作会被串行化,从而引入性能开销。
StringBuilder: StringBuilder 是非线程安全的,但由于没有同步的开销,它在单线程环境中的
性能通常比 StringBuffer 更好。因此,如果你确定不会在多线程环境中使用,推荐使用
StringBuilder 。
StringBuild > StringBuffer > String。如果在多线程环境下,或者你需要确保线程安全性,那么使用
StringBuffer 是更安全的选择。如果你在单线程环境下且关注性能那么选择 StringBuilder 是更合适
的。
访问修饰符
面向对象编程三大特征
封装
封装是将对象的状态(属性)和行为(方法)封装在一起,以实现数据隐藏和保护对象的内部状态。
然后通过访问修饰符(如 public、private、protected)来限制对对象内部状态的访问,从而确保数
据的安全性和完整性。还提供公共的方法(getter 和 setter)来访问和修改对象的状态,封装隐藏了
内部实现细节,方便使用也保证了安全
继承
继承就是创建的新类可以继承已有类的属性和方法,从而实现代码重用和扩展。使用extends 来实现
类的继承关系,子类可以继承父类的非私有成员变量和方法。继承可以建立类之间的层次结构,通过
在子类中添加新的方法或重写父类的方法,实现对父类行为的扩展和改进。
多态
多态主要是实现同一方法在不同对象上具有不同的表现形式。
方法重载和方法重写
方法重写特点:即子类可以重写父类的方法,实现对方法的不同实现
三同一不同:
方法的返回值类型相同
方法名相同
参数列表相同
方法的具体实现是不同的
访问权限不能严于父类
方法重载特点:即同一个类中有多个方法具有相同的名称但不同的参数列表
一同三不同
方法名必须相同
参数列表不同(参数个数和参数类型不同)
final的用途
1. final可以修饰类,方法和变量
2. final修饰的类,不能被继承,即它不能拥有自己的子类
3. final修饰的方法,不能被重写
4. final修饰的变量,叫做常量,无论是类属性、对象属性、形参还是局部变量,都需要进行初始化操
作。
File类
存在于java.io包中,表示文件对象或者目录(文件夹)对象
创建File对象
File file = new File(String pathName); 根据文件的路径创建File类的对象,用来表示文件
File file = new File(File parent,String childName); 根据父级目录对象和子文件名获取该File对象
File file = new File(String parent,String child); 根据父级路径名和子文件名获取该文件的File对象
File类的常用方法
创建目录 file.mkdir();
创建多级目录 file.mkdirs();
创建文件 file.createNewFile(); 必须保证该路径存在
删除文件或文件夹 file.delete(); 注意:如果被删除的文件夹中有数据,则会删除失败
判断文件或者文件夹是否存在 file.exists();
判断文件对象是否是文件 file.isFile();
判断文件对象是否是目录 file.isDirectory();
获取某目录下所有的子文件 file.listFiles();
获取文件的相对路径 file.getPath();
获取文件的绝对路径 file.getAbsolutePath();
获取文件的父级路径 file.getParent();
获取文件的大小(单位: B) file.length();
查看文件的只写属性,返回true或者false file.canWrite();
查看文件的只读属性,返回true或者false file.canRead();
获取父级文件对象 file.getParentFile();
当程序运行结束删除文件的方法是 file.deleteOnExit();
重命名文件的方法 file.renameTo(file);
不改变文件的位置,则就是直接重命名文件
改变文件的位置,则就是剪切并重命名文件
获取磁盘总空间 getTotalSpace();(丝呗丝)
获取磁盘已用空间 getUsableSpace();
获取磁盘未占用空间 getFreeSpace();
文件过滤器---FileFilter和FilenameFilter
FileFilter : 操作的是子文件对象,可以用于做文件名的筛选,也可以做文件大小等的筛选。
FilenameFilter: 操作的是子文件名,多用于做文件名的筛选
IO流
IO流的定义
IO流分类
按照流的传输方向划分
输入流: 用于读取文件中数据的流
输出流: 用于把数据写到文件中的流
按照传输的数据类型划分
字节流: 传输字节类型数据的流
字符流: 传输字符类型数据的流
按照流连接的目标划分
节点流:直接连接文件的流
包装流:连接其它流的流
IO流的体系结构
IO流有4个抽象的父类
InputStream:是所有的字节输入流的父类
FileInputStream 称为文件字节输入流。用于按照字节(byte)的类型读取文件中的数据
ObjectInputStream 称为对象字节输入流。用于把文件中的Java对象重新读取出来(即,反序
列化)
ByteArrayInputStream 称为内存输入流。用于从内存中读取字节数据
OutputStream:是的字节输出流的父类
FileOutputStream 称为文件字节输出流。用于按照字节的类型向文件中写数据
ObjectOutputStream 称为对象字节输出流。用于把一个Java对象的状态值序列化到文件中
保存
ByteArrayOutputStream 称为内存输出流。用于把字节型的数据写出到内存中暂存
Reader:是所有的字符输入流的父类
I----Input 输入
O----Output输出
作用:用于实现对文件的读写功能
剩余143页未读,继续阅读
资源评论
晓飘Java
- 粉丝: 63
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】智慧外贸平台源码(springboot+vue+mysql+说明文档+LW).zip
- IMG20241107151327.jpg
- 【java毕业设计】智慧食堂设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 文书用电子小印生成器V124
- 【java毕业设计】springboot农产品销售系统(springboot+vue+mysql+说明文档).zip
- 四川省事业单位教师招聘考试模拟预测卷2套(含答案)
- QAT-PTQ.zip111
- 【java毕业设计】致远汽车租赁系统源码(springboot+vue+mysql+说明文档+LW).zip
- 【java毕业设计】springboot的社区流浪动物救助系统(springboot+vue+mysql+说明文档).zip
- MQTT入门到精通相关资料
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功