![](https://img-blog.csdnimg.cn/0e82b82e165741e6b29e6c811f1fb1c8.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVASE基础知识
文章平均质量分 77
介绍java的基础知识点,小编尽可能的详细
naoguaziteng
向着大佬看齐
展开
-
JDK1.7和JDK1.8版本的新特性
一.JDK1.7版本的新特性1.二进制字面量2.数字字面量可以出现下划线3.switch 语句可以用字符串二.JDK1.8版本的新特性1.新特性一:新增的日期时间相关类2.特性二:Lambda表达式,Lambda表达式的书写语法,匿名内部类的Lambda表达式简化规则,Lambda表达式可作为参数传递,Lambda表达式的另一种写法, 方法引用,构造器引用3 .特性三:Stream流,Stream 的操作三个步骤,创建Stream的方式 ,Stream 的中间操作, Stream 的终止操作原创 2022-09-20 12:22:41 · 2351 阅读 · 0 评论 -
java中的反射机制
一.类加载器1.类的加载过程概述2.类的加载时机3.类加载器的概述4.类加载器的分类及各类类加载器的作用5.类加载器的双亲委派机制二.反射机制1.反射概述2.获取class文件对象的三种方式三.通过反射获取构造方法,成员变量和成员方法1.获取构造方法2.获取成员变量3.获取成员方法四.动态代理1.动态代理概述2.动态代理的特点,作用和分类3.如何创建代理对象4.动态代理的神奇之处JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一原创 2022-09-04 17:46:45 · 146 阅读 · 0 评论 -
网络编程简介
一.什么是计算机网络?什么是网络编程?1.计算机网络2.网络编程二.网络模型(OSI七层参考模型和TCP/IP四层参考模型)1.网络模型的分类2.OSI七层参考模型3. TCP/IP四层参考模型 三.网络编程的三要素1.关于IP地址2.关于端口号3.关于传输协议四.常用的InetAddress类五.Socket通信原理Socket原理机制: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,原创 2022-09-01 16:55:25 · 307 阅读 · 0 评论 -
UDP和TCP协议发送接收数据
一.UDP协议发送接收数据(不需要建立连接,不可靠协议)1.(客户端)发送数据步骤:2.(服务端)接收数据步骤:3.实现客户端键盘录入,服务端控制台输出(多线程)4.实现双方互聊(多线程)二.TCP协议发送接收数据(必须建立连接,可靠协议,效率稍低)1.(客户端)发送数据步骤:2.(服务端)接收数据步骤:3.实现客户端键盘录入,服务端控制台输出4.客户端键盘录入,服务端写到文本文件中5. 客户端读取文档,服务端接收并存入文档且有反馈UDP协议: 发短信 将数据源和目的地封装成数据包,不需要建立连接;原创 2022-09-02 19:03:15 · 3050 阅读 · 1 评论 -
多线程涉及的其它知识(死锁(等待唤醒机制),内存可见性问题以及定时器,设计模式)
一.死锁1.死锁现象2.线程间的等待唤醒机制什么是等待唤醒机制?等待与唤醒方法:等待唤醒机制的案例演示:补:Wait和Sleep的区别:二.内存可见性问题(volatile)1.volatile 关键字2.如何保证可见性?3.volatile与锁的不同: 三.定时器的概述和使用1.Timer:2.TimerTask:定时任务如果出现了同步嵌套,就会很容易产生死锁问题.是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待现象.简单来说死锁是两个或者两个以上的线程,在抢占...原创 2022-08-03 16:29:00 · 156 阅读 · 0 评论 -
线程安全问题以及其解决方法
1.为什么会出现线程安全问题?2.判断一个多线程应用程序是否有问题的标准:3.如何解决多线程安全问题呢?4.同步代码块(synchronized)/同步代码块的格式:/锁的分类:/用锁解决案例问题:/同步的好处和弊端: 5.死锁问题为什么会出现线程安全问题呢?为什么会几个窗口出售同一张票,0票甚至负票呢?请看图!!!!!这个同步代码块保证数据的安全性的一个主要因素就是这个对象. 注意这个对象要定义为静态成员变量才能被所有线程共享.这个对象其实就是一把锁.这个对象习惯叫做监视器.如果出现了同步嵌套,就会.原创 2022-08-01 17:32:59 · 1033 阅读 · 0 评论 -
多线程------实际篇
一.多线程的创建1.如何实现多线程呢?方式1 (参考Thread类)/run()和start()方法哪个是启动线程的方法?线程能不能多次启动?为什么要重写run方法?/方式2 (实现Runnable接口)/方式3 (实现 Callable 接口)二.多线程中常用到的方法1.有的时候我们给线程设置了指定的优先级,但是该线程并不是按照优先级高的线程执行,那是为什么呢?2.线程默认的优先级是多少呢?3.礼让线程为什么不是理想状态下的一个线程执行一次?4.用户线程和守护线程的区别以及守护线程的适用场景?,..原创 2022-08-01 15:43:57 · 232 阅读 · 0 评论 -
线程与进程------理论篇
1.进程进程的概述:多进程的意义:那么对于单核计算机来讲,游戏进程和音乐进程是同时运行的吗?2.线程线程的概述:多线程的意义:补:并行和并发3.线程和进程的联系与区别4.Java程序运行原理和JVM的启动是多线程的吗?5.线程的执行和调度模型: 线程的执行和线程的两种调度模型.............原创 2022-07-18 16:23:41 · 727 阅读 · 0 评论 -
IO流中的其它流
1.数据输入输出流(DataInputStream/DataOutputStream)2.内存操作流3.打印流打印流的特点4.随机访问流(RandomAccessFile)RandomAccessFile的最大特点是能读能写.5.序列化流和反序列化流标记接口什么时候需要用到序列化和反序列化呢?实现Serializable接口, 为什么还要显示指定serialVersionUID的值?6.PropertiesProperties的特殊功能7.顺序流(SequenceInputStream)特点: 可以写基本数原创 2022-07-08 17:12:54 · 102 阅读 · 0 评论 -
IO流中的字符流
字符流出现的原因 字符输入输出流(InputStream/OutputStream)1.转换输入输出流(InputStreamReader/OutputStreamReader)2.字符便捷流(FileWriter/FileReader)3.字符缓冲流(BufferedWriter/BufferedReader)由于字节流操作中文不是特别方便,所以java提供了字符流来针对于文本文件进行操作!但是字符流的底层是字节流和编码表的共同操作.a.构造方法b.转换流的方法注意: 字符流必须刷新一下,才能写入到文原创 2022-07-08 11:24:51 · 152 阅读 · 2 评论 -
IO流中的字节流
一.IO流1.IO流概述2.IO流的分类a.按照流向划分可分为输入流和输出流.b.按照数据类型划分可分为字节流和字符类.二.字节输入输出流(InputStream/OutputStream)1.文件输入输出流(FileInputStream和FileOutputStream)FileInputStream读取数据FileOutputStream写出数据创建字节输出流对象到底做了几件事情呢?使用IO流为什么一定要close()方法?2.高效输入输出流(BufferedInputStream和BufferedO原创 2022-07-08 09:47:52 · 203 阅读 · 0 评论 -
File类的构造方法和各种常用的方法
1.File类2.构造方法3.File类中的方法4.文件名称过滤器(FilenameFilter)5.相关案例: 判断D盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称.以及递归删除非空文件夹(目录).File类是文件和目录路径名的抽象表示形式. 并且这个File类可以用来封装文件,也可以用来封装目录.,然后对其进行操作!注意事项:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下补充: 相对路径是指没有带盘符的路径. 而相应的绝对路径就是带有盘符的路径4.文件名称过滤器(原创 2022-06-16 18:01:12 · 2695 阅读 · 3 评论 -
双列集合(Map集合)
针对于键值对应关系的数据,Java为了我们方便操作,给我们提供了另外一种集合叫做Map 专门存储键值对应关系的数据。Map集合是一个不同于Conllection集合的集合,它们之间也没有什么联系。键对应关系的数据:一个键只能对应一个值,键相同,值覆盖。...原创 2022-05-25 16:18:15 · 426 阅读 · 2 评论 -
浅了解泛型机制
目 录 1.泛型机制2.泛型的语法3.泛型的注意事项4.泛型好处: 可以把问题提前编译期,泛型有良好的扩展性并且可以避免向下转型.5.泛型可以使用在 类,接口,方法上6.泛型通配符1.泛型机制泛型机制是一种把数据类型明确工作,推迟到创建对象或调用方法时,才去明确的一种机制,也就是在创建对象或调用方法时才会知道是数据的数据类型是什么类型.并且泛型机制是JDK1.5版本之后才有的机制!2.泛型的语法<E,Y> 其中E Y 就是代号,一...原创 2022-05-24 16:00:35 · 276 阅读 · 2 评论 -
出现ConcurrentModificationException这个异常报错,怎么处理?
ConcurrentModificationException是并发修改异常的意思.一般会发生在集合的迭代器遍历.例如需求:现有一个集合,判断集合里面有没有 "world" 这个元素,如果有,就添加一个 "javaee" 元素,请写代码实现.import java.util.ArrayList;import java.util.ListIterator;public class ExceptionTest { public static void main(Strin...原创 2022-05-24 14:06:21 · 590 阅读 · 0 评论 -
单列集合(Collection,List,Set集合的详细介绍)
一.集合整体的体系1.Collection集合体系的相关介绍2.单列表集合的工具类Collections类3.Collection接口和Conllections工具类的区别二.集合中的根接口:Collection接口1.Collection接口中的方法2.遍历集合(用根接口的迭代器iterator();)3.集合与数组的互转集合转换为数组:数组转换为集合:(asList())三.Collection的子接口List接口四 .LIst接口的实现类五.Collection的子接口Set接口中的实现类原创 2022-05-19 18:23:18 · 1994 阅读 · 0 评论 -
常用类:Date类和SimpleDateFormat类以及Calendar类
针对日期,java提供了相对应的Date类.一.Date类1.类 Date 表示特定的瞬间,精确到毫秒2.构造方法3.Date类中的方法4.Date类型与Long类型的相互转换时间的输出格式并不是咱们中国人的阅读习惯!毕竟咱们喜欢某年某月某日这样顺着的顺序!于是就出现SimpleDateFormat类二.SimpleDateFormat类1.格式化日期的类SimpleDateFormat2.构造方法:3.Date类型与String日期字符串类型的转换三.Calendar类原创 2022-05-10 17:21:06 · 376 阅读 · 0 评论 -
常用类Math类,Random类,System类和BigDecimal类的浅介绍
目 录1.Math类Math类中常见的静态常量和静态方法:2.Random类产生随机数可用相同的种子:3.System类System 类包含一些有用的类字段和方法,它不能被实例化:4.BigDecimal类BigDecimal类中的常用的方法:1.Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等.Math类中常见的静态常量和静态方法:public static final double E ; ...原创 2022-05-05 14:41:37 · 150 阅读 · 0 评论 -
正则表达式的Pattern类(模拟器)和Matcher类(匹配器)
类Pattern模式器,用来封装一个正则表达式.封装好之后通过匹配器获取模式器,并传入待匹配数据.使用匹配器中的matches() 可以查看待匹配数据是否符合正则.public class Test { public static void main(String[] args) { //Pattern 模式器,用来封装一个正则表达式 Pattern p = Pattern.compile("a*b"); //此处a*b是指a可以出现0次或多次,b只原创 2022-05-05 11:07:05 · 461 阅读 · 0 评论 -
定义字符串规则的简单方法:正则表达式
目录正则表达式:匹配单个字符:匹配多个字符(需要加量词):正则表达式:正则表达式:正确规则的表达式.是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用.里面书写的规则是java给我们定的!规则字符在java.util.regex Pattern类中(之后小编会介绍到的!)在Java中可以用字符串来定义正则表达式!相关的规则如下:匹配单个字符:String regx = "a"; ...原创 2022-05-04 20:27:27 · 565 阅读 · 0 评论 -
语法糖机制(JDK1.5新特性) ---- 程序员的最爱
自动拆装箱机制是jdk1.5版本之后才有的机制,因为用起来很舒心,所以有了语法糖这个说法!(jdk1.5版本之前是手动拆装箱的哈!)自动装箱:自动将基本类型转换成他对应的包装类型.自动拆箱:自动将包装类型转换成天对应的基本类型.public class Test { public static void main(String[] args) { //自动装箱 int num = 200; In原创 2022-05-04 17:22:06 · 1014 阅读 · 0 评论 -
char的封装类Character中常用的方法
Character.isUpperCase(); 判断是否是大写字符Character.isLowerCase(); 判断是是否是小写字符Character.isDigit(); 判断是否是数字字符Character.isLetter(); 判断是否是字母(此处还可以根据ASCII码表进行判断)Character.isSpaceChar(); 判断是不是空格字符Character.isLetterOrDigi...原创 2022-05-03 19:19:10 · 591 阅读 · 0 评论 -
基本类型的封装类
目 录 1.基本数据类型的封装类2.int类型的封装类是Integer!其中常用的构造方法有:3.Integer封装类中常用的方法:4.封装类的常用操作: 用于基本数据类型与字符串之间的转换.int类型转换为String类型String类型转换为int类型 (需要注意的是该字符串的字面上是有效的数字)为了对基本数据类型进行更多方便的操作,java就针对每一种基本数据类型提供了对应的类类型,也就是基本数据类型相对应的封装类.封装类就是把基本数据类型包...原创 2022-05-03 19:05:16 · 3132 阅读 · 4 评论 -
针对数组保护的工具类Arrays类
Arrays类是Java提供的一个针对数组操作的一个工具类.该类提供了数组常用的一些方法例如数组遍历什么的,之前的学习都是由咱们自己编写!现在学习了Arrays类,只需要调用其中的方法即可啦!接下来就介绍一下该类中常用的一些方法!Arrays.toString(arr); 会以这种格式"[元素1,元素2,元素3]"返回一个字符串. Arrays.sort(arr); 对数组进行排序 Arrays.binarySea...原创 2022-05-03 17:57:32 · 296 阅读 · 0 评论 -
数组的二分查找法
数组中常见的查找法就是基本查找法,也就是遍历下来挨个比对进行查找!public class Test { public static void main(String[] args) { int[] arr = {10, 3, 1, 6, 7, 65, 30, 80, 90}; //查找该元素在数组中第一次出现的索引 int index = getIndex(arr, 90); System.out.println(inde..原创 2022-05-03 17:23:30 · 1346 阅读 · 0 评论 -
常见的数组排序算法(冒泡排序/选择排序/插入排序/快速排序)
.冒泡排序数组元素两两比较,大的元素往后放,经过一轮比较,最大的元素就出现在了最后面。选择排序从0索引处开始,拿一个元素,跟他后面的元素挨个比较,小的往前放,经过一轮比较,最小的元素就出现在了最前面插入排序将后面的元素,插入到之前的有序列表中,然后比较使之仍保持保持有序。.快速排序挖坑填数法:将基准数挖出形成第一个坑。由后向前找比他小的数,找到后挖出此数填到前一个坑中。由前向后找比他大或等于的数,找到后也挖出此数填到前一个坑中。再重复执行2,3两步骤。原创 2022-05-02 19:00:16 · 516 阅读 · 0 评论 -
String类型与StringBuilder类型的相互转换
1.String ------> StringBuffer2.StringBuffer ------> String1.String ------> StringBuffer通过构造方法 通过append()方法 通过insert()方法2.StringBuffer ------> String使用substring方法 通过构造方法 通过toString()方法public class Test {...原创 2022-04-26 18:32:33 · 1103 阅读 · 0 评论 -
StringBuffer类和StringBuilder类以及StringJoiner类
一.StringBuffer类1.StringBuffer2.StringBuffer的构造方法3.StringBuffer的取容量和长度的方法:4.StringBuffer添加功能方法:5.StringBuffer删除功能的方法6.StringBuffer替换和反转功能的方法7.StringBuffer截取功能的方法二.StringBuilder类三.StringJoiner类四.String类,StringBuffer类和StringBuilder类的区别原创 2022-04-26 15:09:55 · 660 阅读 · 0 评论 -
String类中常用的方法
目 录1.判断功能的方法2.转换功能的方法3.获取功能的方法4.替换功能的方法5.去除字符串两空格的方法6.按字典顺序比较两个字符串1.判断功能的方法public boolean equals(Object obj): 比较字符串的内容是否相同,区分大小写 public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写 publi...原创 2022-04-25 15:15:13 · 541 阅读 · 0 评论 -
String类中的常用构造方法和字符串的特性
目录1.String中常见的构造方法:2.String类代表字符串什么是字符串?字符串的特性:1.String中常见的构造方法:public String():空参构造(String() 初始化一个新创建的 String 对象,使其表示一个空字符序列) public String(String original):把字符串常量值转成字符串 public String(byte[] bytes):把字节数组转成字符串 public String(byte[] byte...原创 2022-04-21 18:41:49 · 809 阅读 · 0 评论 -
==与equals方法的区别
1.== 是一个比较运算符,可以比较基本数据类型,也可以比较引用数据类型。 比较基本数据类型,比较的是两个值是否相等。 比较引用数据类型,比较的是两个对象的地址值是否相等。public class Test { public static void main(String[] args) { int a=10; int b=10; int[] arr={1,2,3,4}; int[] arr1={1,2,3,4};原创 2022-04-21 11:33:42 · 149 阅读 · 0 评论 -
了解Object类以及类中常用的方法
一.了解Object类二.Object类中常用的方法1.hashCode()方法: public int hashCode()2.getClass()方法:public final Class getClass()3.toString()方法:public String toString()4.equals()方法补:instanceof5.clone()方法: protected Object clone ()clone 的步骤:clone的内存图 :浅克隆和深克隆:Object类是所原创 2022-04-21 11:04:46 · 715 阅读 · 0 评论 -
匿名内部类
目 录匿名内部类是局部内部类的一种简化形式.本质上是一个对象,是实现了该接口或继承了该抽象类的子类对象.语法格式: new 类名或者接口名(){ 重写方法; } ;给匿名内部类名命: 虽然这是匿名内部类,但是仍然可以利用多态来给匿名内部类名命的哈!匿名内部类的好处:匿名内部类,经常作为参数,或返回值,使用比较方便。一个类中可以嵌套一个接口:匿名内部类是局部内部类的一种简化形式.本质上是一个对象,是实现了该接口或继承了该抽象类的子类对象....原创 2022-04-20 14:35:51 · 20649 阅读 · 12 评论 -
内部类与外部类之间的访问
目 录1.内部类与外部类2.内部类的特点:内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员。3.内部类与外部类之间的访问在测试类中调用成员内部类中的方法:外部类访问成员内部类中的成员:静态的成员内部类,只能访问外部类的静态成员私有的成员内部类,外界就无法直接创建其对象,可以通过外部类的方法访问局部内部类,在外界没有直接创建其对象的语法局部内部类访问外部类的局部变量:1.内部类与外部类将一个类A 定义到另一个类B的内部,...原创 2022-04-14 19:51:32 · 12174 阅读 · 12 评论 -
四种权限修饰符的相关介绍
目 录priavte(私有的)default默认(缺省)(没有修饰符):protected(受保护的):public(公共的):四种权限修饰符的访问权限四种权限修饰符:private(私有的), default默认(缺省) , protected(受保护的) , public(公共的)priavte(私有的)priavte(私有的)相关详细介绍在这里 ------>这里这里!default默认(缺省)(没有修饰符):它是针对本包访问而设...原创 2022-04-13 19:34:57 · 2732 阅读 · 1 评论 -
类与类,类与接口,接口与接口的关系
目 录类与类:继承关系,只能单继承,不能多继承但是可以多层继承。类与接口:实现关系,可以单实现,也可以多实现。并且还可以在继承一个类的同时实现多个接口。接口与接口:继承关系,可以单继承,也可以多继承。类与类:继承关系,只能单继承,不能多继承但是可以多层继承。public class A { //父类} class B extends A{ //子类B继承A(单继承) } class C extends B{ //子类C继承B,子类B继承...原创 2022-04-12 17:04:37 · 498 阅读 · 0 评论 -
interface关键字和implements关键字以及接口
目录 1.接口的作用2.interface关键字3.implements关键字4.类和接口的关系: 咱们可以理解为 子类和父接口。5.接口的特点6.接口成员特点7.抽象类和接口的区别1.接口的作用接口就是为了定义一些,扩展功能,这些功能并不是某个事物,天生所具备的,所以这些功能,就不适合直接定义到某个事物中,而是定义到接口中.在接口中定义这些功能时也不需要给出具体实现,直接抽象出来.如果某些事物,想要具备这些扩展功能,就可以实现该接口。 接口其实还可以定义一些...原创 2022-04-12 16:35:36 · 1222 阅读 · 6 评论 -
抽象类及abstract关键字
absract可以修饰类和方法/抽象方法/抽象类/抽象类的特点/abstract不能和哪些关键字共存?抽象类格式: abstract class 类名 {}抽象方法格式: public abstract void eat();在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。抽象类和抽象方法必须用abstract关键字修饰.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类. 一旦一个类中有了抽象方法,此类必须为抽象类.这个类中如果没有定义抽原创 2022-04-12 15:29:49 · 392 阅读 · 2 评论 -
面向对象的三大特征之一:多态
目录面向对象三大特征: 封装, 继承 , 多态.1.多态2.多态的前提3.多态的表现形式及如何访问成员4.多态的好处5.多态的弊端以及解决方案面向对象三大特征: 封装, 继承 , 多态.1.多态多态指的是一种事物,在不同时刻,所表现出的不同状态。例如生活中猫是猫类的一种也是动物类的一种. 在Java中就是可以 Cat cat=new Cat(); (猫是猫类的一种),也可以Animal an=new Cat(); (猫是动物类的一种)...原创 2022-04-11 15:13:05 · 696 阅读 · 0 评论 -
变量访问遵循就近原则
变量访问遵循就近原则先在本类中的局部范围(即形参,方法内部)内找,找到了就可以直接拿来使用,如果没有找到,就在本类成员范围(即类中方法外)找,找到了就拿来使用。如果在本类的成员范围没有找到,就去父类的成员范围找,找到就可以使用啦。就近原则的内存图原创 2022-04-11 14:18:37 · 331 阅读 · 0 评论