![](https://img-blog.csdnimg.cn/d5ee2309eaec43c18403d6e2a32c3323.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 91
代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。
是程序喵呀
代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。
展开
-
MySQL下载和安装部署
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公 司开发,现在已经属于 Oracle 旗下产品。MySQL 是最流行的关系型数据 库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMSRelationalDatabase Management System,关系数据库管 理系统) 应用软件之一。开源免费!原创 2024-03-20 10:40:27 · 741 阅读 · 1 评论 -
java内部类
将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。匿名内部类:是内部类的简化写法。他是一个隐含了名字的内部类。开发中,最常用到的内部类就是匿名内部类了。原创 2024-03-14 10:43:30 · 854 阅读 · 2 评论 -
java继承
假如我们要定义如下类: 学生类,老师类和工人类,分析如下。学生类 属性:姓名,年龄 行为:吃饭,睡觉老师类 属性:姓名,年龄,薪水 行为:吃饭,睡觉,教书班主任 属性:姓名,年龄,薪水 行为:吃饭,睡觉,管理如果我们定义了这三个类去开发一个系统,那么这三个类中就存在大量重复的信息(属性:姓名,年龄。行为:吃饭,睡觉)。这样就导致了相同代码大量重复,代码显得很臃肿和冗余,那么如何解决呢?假如多个类中存在相同属性和行为时,我们可以将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要。原创 2024-03-14 09:49:58 · 1289 阅读 · 0 评论 -
java线程
思考:在使用wait和notify的时候都加了锁 为啥?因为我要知道对那个对象进行唤醒的!!!再举个生活中的例子:大学的时候在楼底下等过自己的女朋友。你就是等待线程你女朋友就是唤醒线程你在楼底下等的时候 就是在wait。你女朋友下楼之后,唤醒你 咱们走吧。但是你女朋友 去唤醒别人的男朋友?这就扯犊子了,所有加锁de保证是同一个对象的wait需要持有锁的原因是,你肯定需要知道在哪个对象上进行等待,如果不持有锁,将无法做到对象变更时进行实时感知通知的作用。原创 2024-03-13 17:13:49 · 1130 阅读 · 0 评论 -
java中xml概述
万维网联盟(W3C)万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者: Tim Berners-Lee (蒂姆·伯纳斯·李)。是Web技术领域最具权威和影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言HTML(标准通用标记语言下的一个应用)、可扩展标记语言XML(标准通用标记语言下的一个子集)原创 2024-03-12 14:59:02 · 1065 阅读 · 2 评论 -
java类加载器
如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式。Bootstrap class loader:虚拟机的内置类加载器,通常表示为null ,并且没有父null。类加载的过程: 加载、验证、准备、解析、初始化。原创 2024-03-12 14:54:37 · 1088 阅读 · 13 评论 -
java循环高级
Random跟Scanner一样,也是Java提前写好的类,我们不需要关心是如何实现的,只要直接使用就可以了。游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过。随机数范围的特点:从0开始,不包含指定值。条件控制语句可以空着不写,表示每次循环体执行完毕后,控制变量不做任何变化。上面这个格式里面,只有number是变量名,可以变,其他的都不允许变。条件判断语句可以空着不写,如果不写,默认表示true,循环一直进行。上面这个格式里面,只有r是变量名,可以变,其他的都不允许变。原创 2024-03-11 09:34:58 · 961 阅读 · 6 评论 -
java网络编程
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。原创 2024-03-11 09:31:21 · 1040 阅读 · 0 评论 -
java算法
数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。原创 2024-03-09 14:30:25 · 1036 阅读 · 14 评论 -
java正则表达式
语法示例:"." : 匹配任何字符。"\d":任何数字[0-9]的简写;"\D":任何非数字[^0-9]的简写;"\s": 空白字符:[ \t\n\x0B\f\r] 的简写"\S": 非空白字符:[^\s] 的简写"\w":单词字符:[a-zA-Z_0-9]的简写"\W":非单词字符:[^\w]//.表示任意一个字符System.out.println("你".matches(".."));//falseSystem.out.println("你".matches("."));原创 2024-03-09 14:23:42 · 923 阅读 · 0 评论 -
IO(异常&File)
异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常机制其实是帮助我们找到程序中的问题,异常的根类是,其下有两个子类:与,平常所说的异常指。Throwable体系:Error:严重错误Error,无法通过处理的错原创 2024-03-08 09:13:48 · 1017 阅读 · 0 评论 -
Stream流
如果使用Lambda,那么根据“可推导就是可省略”的原则,无需指定参数类型,也无需指定的重载形式,它们都将被自动推导。Lambda表达式被类的实例方法替代的时候 第一个参数作为调用者 后面的参数全部传递给该方法作为参数。演员类Actor已经提供,里面有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法。Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数。Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数。原创 2024-03-08 09:06:52 · 1080 阅读 · 0 评论 -
java集合(List集合)
Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法方法名说明添加元素从集合中移除指定的元素根据条件进行移除清空集合中的元素判断集合中是否存在指定的元素判断集合是否为空int size()集合的长度,也就是集合中元素的个数。原创 2024-03-07 16:06:21 · 870 阅读 · 0 评论 -
java集合(泛型&&数据结构)
泛型的介绍泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换泛型的定义格式: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如: : 指定多种类型的格式,多种类型之间用逗号隔开.例如: 不可以存储重复元素没有索引,不能使用普通for循环遍历不可以存储重复元素没有索引可以将元素按照规则进行排序。原创 2024-03-07 15:54:25 · 1164 阅读 · 0 评论 -
JAVA冒泡排序
它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾!采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!原创 2024-03-06 09:32:41 · 700 阅读 · 14 评论 -
JAVA选择排序
它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。原创 2024-03-06 09:30:39 · 480 阅读 · 0 评论 -
JAVA原子性
所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体。原创 2024-03-05 09:01:49 · 786 阅读 · 2 评论 -
JAVA线程池
提到池,大家应该能想到的就是水池。水池就是一个容器,在该容器中存储了很多的水。那么什么是线程池呢?线程池也是可以看做成一个池子,在该池子中存储很多个线程。线程池存在的意义:系统创建一个线程的成本是比较高的,因为它涉及到与操作系统交互,当程序中需要创建大量生存期很短暂的线程时,频繁的创建和销毁线程对系统的资源消耗有可能大于业务处理是对系统资源的消耗,这样就有点"舍本逐末"了。针对这一种情况,为了提高性能,我们就可以采用线程池。线程池在启动的时,会创建大量空闲线程,当我们向线程池提交任务的时,线程池就。原创 2024-03-05 08:57:18 · 1024 阅读 · 12 评论 -
java线程同步
虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。弊端:当线程很多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低程序的运行效率。创建三个Thread类的对象,把SellTicket对象作为构造方法的参数,并给出对应的窗口名称。| ReentrantLock() | 创建一个ReentrantLock的实例 || 方法名 | 说明 |原创 2024-03-04 10:16:06 · 1016 阅读 · 0 评论 -
java实现多线程
假如计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的 并发性:任何进程都可以同其他进程一起并发执行。抢占式调度模型:优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取的 CPU 时间片相对多一些。再调用get方法,就可以获取线程结束之后的结果。原创 2024-03-04 10:11:48 · 874 阅读 · 0 评论 -
JAVA反射
在java.lang.reflect包中对反射的解释如下图所示平时我们用IDEA开发程序时,用对象调用方法,IDEA会有代码提示,idea会将这个对象能调用的方法都给你列举出来,供你选择,如果下图所示问题是IDEA怎么知道这个对象有这些方法可以调用呢?原因是对象能调用的方法全都来自于类,IDEA通过反射技术就可以获取到类中有哪些方法,并且把方法的名称以提示框的形式显示出来,所以你能看到这些提示了。那记事本写代码为什么没有提示呢?因为技术本软件没有利用反射技术开发这种代码提示的功能,哈哈!!原创 2024-03-02 16:57:09 · 1055 阅读 · 4 评论 -
JAVA动态代理
假设现在有一个大明星叫杨超越,它有唱歌和跳舞的本领,作为大明星是要用唱歌和跳舞来赚钱的,但是每次做节目,唱歌的时候要准备话筒、收钱,再唱歌;跳舞的时候也要准备场地、收钱、再唱歌。杨超越越觉得我擅长的做的事情是唱歌,和跳舞,但是每次唱歌和跳舞之前或者之后都要做一些繁琐的事情,有点烦。于是杨超越就找个一个经济公司,请了一个代理人,代理杨超越处理这些事情,如果有人想请杨超越演出,直接找代理人就可以了。如下图所示我们说杨超越的代理是中介公司派的,那中介公司怎么知道,要派一个有唱歌和跳舞功能的代理呢?原创 2024-03-02 16:45:54 · 1074 阅读 · 12 评论 -
java网络编程
网络编程有什么用呢?这个就不言而喻了,比如我们经常用的微信收发消息就需要用到网络通信的技术、在比如我们打开浏览器可以浏览各种网络、视频等也需要用到网络编程的技术。我们知道什么是网络编程、也知道网络编程能干什么后了,那Java给我们提供了哪些网络编程的解决方案呢?Java提供的网络编程的解决方案都是在java.net包下。在正式学习Java网络编程技术之前,我们还需要学习一些网络通信的前置知识理论知识,只有这些前置知识做基础,我们学习网络编程代码编写才起来才能继续下去。原创 2024-02-29 09:38:16 · 1126 阅读 · 9 评论 -
java多线程
首先,什么是线程安全问题呢?线程安全问题指的是,多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题。下面通过一个取钱的案例给同学们演示一下。案例需求如下场景:小明和小红是一对夫妻,他们有一个共享账户,余额是10万元,小红和小明同时来取钱,并且2人各自都在取钱10万元,可能出现什么问题呢?如下图所示,小明和小红假设都是一个线程,本类每个线程都应该执行完三步操作,才算是完成的取钱的操作。但是真实执行过程可能是下面这样子的。原创 2024-02-29 09:14:01 · 1218 阅读 · 8 评论 -
java特殊文件、日志技术、多线程
像这种普通的文本文件,没有任何规律可言,不方便程序对文件中的数据信息处理。在以后的Java开发过程中还会遇到一些特殊的文本文件,这些文件是有一些格式要求的,方便程序对文件中的数据进行处理。首先,我们来认识一下,什么是XML?XML是可扩展的标记语言,意思是它是由一些标签组成 的,而这些标签是自己定义的。本质上一种数据格式,可以用来表示复杂的数据关系。XML文件有如下的特点:XML中的称为一个标签或者一个元素,一般是成对出现的。XML中的标签名可以自己定义(可扩展),但是必须要正确的嵌套。原创 2024-02-28 09:10:18 · 1079 阅读 · 4 评论 -
IO流(二)
如果使用FileReader读取GBK格式的文件,可能存在乱码,因为FileReader它遇到汉字默认是按照3个字节来读取的,而GBK格式的文件一个汉字是占2个字节,这样就会导致乱码。它是先把数据写到字符缓冲流内部的8BK的数组中(ps: 先攒一车货),等数组存满了,再通过原始的字符输出流,一次性写到目标文件中去(把囤好的货,一次性运走)。它是先把数据写到缓冲流内部的8BK的数组中(ps: 先攒一车货),等数组存满了,再通过原始的字节输出流,一次性写到目标文件中去(把囤好的货,一次性运走)。原创 2024-02-28 08:58:12 · 915 阅读 · 0 评论 -
java字符集、IO流(一)
IO流的作用:就是可以对文件或者网络中的数据进行读、写的操作。如下图所示把数据从磁盘、网络中读取到程序中来,用到的是输入流。把程序中的数据写入磁盘、网络中,用到的是输出流。简单记:输入流(读数据)、输出流(写数据)IO流在Java中有很多种,不同的流来干不同的事情。Java把各种流用不同的类来表示,这些流的继承体系如下图所示:IO流分为两大派系:1.字节流:字节流又分为字节输入流、字节输出流2.字符流:字符流由分为字符输入流、字符输出流。原创 2024-02-27 09:25:02 · 1019 阅读 · 6 评论 -
Map集合、Stream流、File类
递归是一种算法,从形式上来说,方法调用自己的形式称之为递归。递归的形式:有直接递归、间接递归,如下面的代码。原创 2024-02-27 09:18:54 · 961 阅读 · 0 评论 -
JAVA集合进阶(Set、Map集合)
使用迭代器遍历集合时,可能存在并发修改异常。我们先把这个异常用代码演示出来,再解释一下为什么会有这个异常产生list.add("王麻子");list.add("小李子");list.add("李爱花");list.add("张全蛋");list.add("晓李");list.add("李玉刚");// [王麻子, 小李子, 李爱花, 张全蛋, 晓李, 李玉刚]//需求:找出集合中带"李"字的姓名,并从集合中删除if(name.contains("李")){原创 2024-02-26 09:44:49 · 1009 阅读 · 0 评论 -
JAVA算法和数据结构
但是从另一个角度想,一旦我们学会了,会大大简化我们的代码书写,提高我们编写代码的效率,而且这些新的语法都是有前提条件的,遇到的时候就简化得了。如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数作为方法的主调, 后面的所有参数都是作为该实例方法的入参时,则就可以使用特定类型的方法引用。假设我们要查找的元素是81,如果是基本查找的话,只能从0索引开始一个一个往后找,但是如果元素比较多,你要查找的元素比较靠后的话,这样查找的此处就比较多。下面我们就学习一下,正则表达式的规则。原创 2024-02-25 15:21:59 · 3470 阅读 · 12 评论 -
java面向对象高级
1.类变量:属于类,在内存中只有一份,用类名调用- 2.实例变量:属于对象,每一个对象都有一份,用对象调用。原创 2024-02-25 15:04:12 · 869 阅读 · 0 评论 -
Java常用API
别人写好的一些程序,给咱们程序员直接拿去调用。Java官方其实已经给我们写好了很多很多类,每一个类中又提供了一系列方法来解决与这个类相关的问题。比如String类,表示字符串,提供的方法全都是对字符串操作的。比如ArrayList类,表示一个容器,提供的方法都是对容器中的数据进行操作的。像这样的类还有很多,Java把这些类是干什么用的、类中的每一个方法是什么含义,编写成了文档,我们把这个文档称之为API文档。1. 我们为什么要学习别人写好的程序呢?在行业中有这么一句话:“不要重复造轮子”。原创 2024-02-23 17:33:19 · 1876 阅读 · 0 评论 -
java面向对象基础
首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、电影的分数(score)、电影的导演(director)、电影的主演(actor)、电影的简介(info)。为了去描述每一部电影,有哪些信息,我们可以设计一个电影类(Movie),电影类仅仅只是为了封装电影的信息,所以按照JavaBean类的标准写法来写就行。原创 2024-02-23 17:23:05 · 1617 阅读 · 7 评论 -
JAVA方法
1.1 方法是什么方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。这句话什么意思呢?意思是,把一段功能代码围在一起,别人都可以来调用它。下图是方法的完整格式我们看一个需求,比如现在张工、李工两个人都需要求两个整数的和。不使用方法,代码如下。// 1、李工。int a = 10;int b = 20;System.out.println("和是:" + c);// 2、张工。System.out.println("和是:" + c1);原创 2024-02-22 10:17:24 · 935 阅读 · 0 评论 -
Java数组
数组有两种初始化的方式,一种是静态初始化、一种是动态初始化。原创 2024-02-22 09:19:30 · 1073 阅读 · 0 评论 -
java程序流程控制
1. 什么是流程控制答:流程控制是用来控制程序的执行顺序的2. 分支结构if和switch,如何选择?答:if分支:一般用于对一个范围进行判断switch分支:对一个一个值进行匹配3. for循环和while循环、do-while如何循环答:知道循环次数用for、不知道循环次数用while想要先执行,再判断,用do-while。原创 2024-02-21 17:18:15 · 1799 阅读 · 18 评论 -
java数据类型、运算符
答:自动类型转换指的是,数据范围小的变量可以直接赋值给数据范围大的变量int b = a;//这里就发生了自动类型转换(把byte类型转换int类型)原创 2024-02-21 17:00:53 · 964 阅读 · 0 评论 -
java基础day04
执行流程:当代码执行到while以后,会去判断while后面的布尔表达式,如果布尔表达式为true的话,会执行大括号后面的循环体这个代码。执行完以后,再次回到while关键,再去判断布尔表达式,如果布尔表达式为true的话,再次执行循环体。执行完以后,再次回到while关键,再次判断布尔表达式,直到布尔表达式为false的话,就结束循环,就不再执行循环体,也不会回到while关键字。执行流程: 先执行表达式1,在去判断表达式2 是否为true,如果为true执行循环体。再回到表达式2,如果为false。原创 2024-02-20 11:45:40 · 978 阅读 · 0 评论 -
java基础day03
如果表达式1为false,不执行语句体1,接着判断表达式2,如果为true,执行语句体2,以此类推。如果表达式的结果为true的话,就会执行大括号里面的语句体,如果表达式结果为false的话,就不执行大括号里面的语句体。> (大于) < (小于) >= (大于等于)原创 2024-02-20 11:36:31 · 816 阅读 · 0 评论 -
java基础day02
3.采用大驼峰的命名规则,当一个类由两个单词组成的这两个单词的首字母要大写的。声明char类型的数据的时候,使用单引号声明。3.采用小驼峰命名规则,当一个变量由两个单词组成的时候,后面的单词要大写。主要的目的是为了存储数据的。目的:将无意义的字符转为有意义的字符或者将有意义的字符转为无意义的字符。在真实的开发中,对接口,抽象类,类,变量,方法等会有一定命名规范。生活中都是十进制的 数学中都是十进制的。2.以数字,字母,_,等命名,但是数字不能开头。2.以数字,字母,_,等组成,但是数字不能开头。原创 2024-02-19 17:39:59 · 875 阅读 · 0 评论