自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 Java画爱心

【代码】Java画爱心。

2023-12-05 15:09:53 5397 2

原创 CPU、GPU、NPU的区别

2023-10-19 09:42:26 127

原创 Mac navicat连接mysql出现1045 - Access denied for user ‘root‘

此时MySQL的状态会自己切换成运行状态。输入自己的MySQL密码就可以。重新连接数据库,恢复正常。

2023-10-08 10:30:29 1247 1

原创 Mac使用VMWare安装centos7回车回退

下载了VMWare16和Centos7后,进入虚拟机界面install centos7时回退。3.分别使用了完整版、简洁版等多个版本的centos7,依旧出现回退。:M2架构Centos9之前不支持,同理M1可以安装Centos8。1.一开始把所有虚拟机的选项全试一遍,结果发现全部出现回退。2.下载了centos7的X86架构,发现提示x86不兼容。5.切换了其他的操作系统版本,依旧无法解决。4.下载了centos8版本依旧失败。,Centos版本为centos。芯片,安装的为VMWare。

2023-09-04 10:00:06 641

原创 数据结构 217. 存在重复元素

在对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中。因此,我们可以扫描已排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。如果任一值在数组中出现 至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false。对于数组中每个元素,我们将它插入到哈希表中。如果插入一个元素时发现该元素已经存在于哈希表中,则说明存在重复的元素。输入:nums = [1,1,1,3,3,4,3,2,4,2]输入:nums = [1,2,3,1]输入:nums = [1,2,3,4]

2023-01-05 10:14:00 126

原创 Java Class11

CopyOnWriteArrayList在内部会进行加锁操作,在多线程时会复制一个新的集合,在原来的集合中进行读操作,而在复制集合中进行修改操作,修改操作完毕后将原集合指针指向复制集合,原集合做删除操作。使用锁分段技术,在面对大量数据的时候,想要处理部分数据不需要对整体加锁(这样频繁操作会大大降低效率),而是采用锁分段技术对每段数据进行加锁,这样只需要对该部分进行解锁,而不改变其他数据段,从而提高效率。上述代码中,两个list同时对其进行读写操作,控制台会报异常,启动sail-safe机制保证读写一致。

2022-11-21 17:23:14 397

原创 Java Class10

比如我想在B中实现IA下的go方法,但是接口下的方法不能直接调用需要实例化,而且现在我们没有继承关系不能直接实现方法,所以用匿名内部类的方法就是最简单方便的。在这s2生成字符串的过程与s1并不一样,s2是引号一次就开一次堆,每次开堆过程会占用内存并影响运算速度。匿名内部类就是没名内部类,就是说他行使了内部类的功能,但是没有名字来命名。他们共同用来标识对象,两个方法协同工作用来判断两个对象是否相等。一般我们会把=,==,equals方法进行比较。在引用类型时,比较地址是否相等。在基本类型时,比较值是否相等。

2022-11-09 15:51:08 213

原创 Java Class09

两者有很多共同点与不同点Abstract抽象类,在内部有一些抽象方法(有抽象方法的类就是抽象类)//定义成员方法 System . out . println("去上学");} }System . out . println("去上大学");} }父类中含有可实现方法gotoSchool,也有抽象方法gotoCollege,子类继承父类,直接就可以使用gotoSchool方法,但对于gotoCollege方法只有两个选择:实现和不实现。如果实现就如代码写的那样,在调用时正常使用;

2022-11-08 09:52:33 100

原创 Java Class08

从上可以得出,初始化块是最先执行的内容,然后再实例化的过程中调用了默认构造器,所以会调用构造器方法,而成员方法只有在调用方法时才会被使用。在子类通过super关键字调用的时候,可以直接使用super.属性的方法进行调用,与this关键字类似。在这里this关键字用于调用不同的构造器,调用顺序是方法自下而上的调用。这里就是先调用Father的无参构造器,再调用Son的无参构造器。如果在继承中使用构造器,会先调用父类的构造器,然后在调用子类的。this可以访问当前类的属性、构造器和方法。输出顺序是先B后B+

2022-11-07 16:36:40 314

原创 Java Class07

属于has a的关系,也就是拥有关系,例如人和电脑的关系就是has a,即我有一个电脑,但我两个之间并不会存在一个坏了影响另一个的事情。属于is a的关系,也就是从属关系,例如人和大脑之间的关系就是is a,即我有一个脑袋,但是如果任意一个坏死了就会影响到另一个。所以封装的设计可以实现类内的强内聚,弱耦合,所有应当实现的功能要尽可能在类内实现,在类与类之间尽可能的减少关系。子类在继承父类方法时,会先调用父类下的方法去实现,然后才会实现子类自己的方法。继承实际是扩展的概念,就是将已有的类进行填充的过程。

2022-10-31 17:10:57 202

原创 多环境下项目启动问题

这个错误很神奇,我把有关的项目删除了也是一样报错,原因是tomcat在启动时会加载它内部的文件,文件里面有之前加载的项目就会报错。首先在打包好的项目下是有一套自己的运行环境的,如果和自己电脑原有的环境不一样很容易出现环境冲突。在webapps下就是你原本运行过的残留项,他就会在你运行新的项目时进行加载非常坑人。我就是已经删除但是还报错,于是就想着看运行开始加载和运行的tomcat不是一个。在已有项目运行环境下启动打包好的项目会出现若干个问题,梳理一下我遇到的问题。修改链接的端口号,改为自己想要的。

2022-10-26 11:12:26 309

原创 Java Class06

静态在类“生”的时候它就生,类死它才死,类比于“古人”,古人是看不到后来人的情况的,但是后来人可以了解古人,所以动态是可以调用静态的。非默认构造器自动生成,在有非默认构造器时会自动代替自动生成的默认的构造器,需要使用默认构造器需要手动输入。引用类型值传递:引用类型做形参时,传递的是地址而不是值(传递的是自己本身)基本类型值传递:基本类型做形参时,传递的是值而不是地址。字符串在Java中是作为常量出现的,常量是不可改变的。装是get和set,get是取用,set是编写。非默认构造器:含参构造器。

2022-10-18 08:59:28 184

原创 Java Class05

数据类型 [ ] 数组名称 = new 数据类型[数组长度];

2022-10-13 22:00:15 147

原创 Java Class04

在编译器加载主函数时,在找到方法名后,会去找该方法,进行传参后执行方法体的内容,将所得的值返回到主函数的位置中。2.方法必须有返回值,其中void声明的方法返回值为空(并不是没有返回值)无参函数不需要传值进去就可运行,而有参函数则需要传参运行。参数:方法传进去的数据。返回值:方法传出的数据。1.方法之间 不能嵌套。

2022-10-13 15:49:26 142

原创 Java Class03

while语句和do while语句的区别:就是do while会先无脑执行第一次,然后才去判断是否符合条件,而while则是先判断是否符合才去执行。if语句如果不符合,则判断else if语句是否能够执行,全部执行后如果都没找到,则执行else语句中的内容。在case语句中没有break时,相当于没有强制退出,将会继续执行下一个case语句,直到遇到break为止。进入if语句进行判断,为true则执行if中的语句体,false则直接退出if语句继续执行。if, else if语句。

2022-10-13 08:50:05 58

原创 Java Class02

大范围的数据转换成小范围的数据,就如同大水缸里面的水到入小水缸中,很容易将水灌满小水缸将剩下的水撒出来,这时候就发生了数据溢出。||和&&具有短路效果,如果左边的代码执行完已经可以判断结果,将不会执行右边的代码了,有助于节省性能。混合使用:前增/减 在输出的时候直接改变原值,而后增/减则是先直接输出值,然后才改变值的大小。将整数类型转换成浮点数类型时,常常只会取整数部分,而丢失的小数部分的情况就叫精度丢失。+, -, *, /, 取模(%)将大范围手动操作放到小范围的过程。表达式:用运算符连接的式子。

2022-10-12 16:01:43 187

原创 Java Class01

编写:就是书写代码,后缀名为.java或.javac文件。编译:就是将写好的代码生成目标程序的过程,后缀是.exe。.只能使用$, _,0-9, A-Z, a-z这些符号。浮点型默认为double类型,使用float要加F。整数型默认为int类型,使用long时要加L。编译的三个步骤:编写–>编译–>运行。:除首字母外,其余单词首字母均大写。:除首字母外,其余单词首字母均大写。:字符串,数组,接口,lambda。数据类型 变量名称 = 数据值;‘a’,‘A’,‘中’变量名称 = 数据值;

2022-10-11 20:25:41 264

原创 将一个excel多个文件合并成一个文件的多个sheet

【代码】将一个excel多个文件合并成一个文件的多个sheet。

2022-08-24 14:41:11 3945 2

原创 集合的补充(2022.7.21)

Arrays.asList把数组转换成集合时,不能使用其修改集合的相关方法(add,remove,clear),会抛出异常。asList之后,后台的数据仍然是原有数组set()方法间接对数组进行值的修改操作,并没有实现集合个数的修改。............

2022-07-21 14:43:56 53

原创 匿名内部类(2022.7.20)

equals只用在比较引用类型上,比较的是堆中的值。可以使用匿名内部类充当对象。相同即相等,相等未必相同。引用类型比较的是堆的地址。基本类型比较的是真实值。==比较的是栈的值。

2022-07-20 21:04:21 86

原创 包,访问控制补充(2022.7.20)

1.java.lang包含一些Java语言的核心类,如Object,String,Math等,自动导入不需要import。2.protected同一包下都好使,子类继承父类之后,实例化子类可以跨包。4.java.util包含一些使用工具类,例如日期类。2.java.net包含执行与网络相关操作的类。3.java.io包含能提供多种输入\输出的类。3.defalut同一包下都好使,跨包不好使。static可以修饰变量,方法,内部类。4.private只有自己能看到。..................

2022-07-19 16:31:48 90

原创 重载补充(2022.7.19)

2.使用构造器,互相调用构造器,不要形成闭环,通过this调用构造器,必须在第一句。

2022-07-19 14:09:25 46

原创 封装,继承补充(2022.7.19)

*getClass()**得到这个对象来自于哪里,我是谁。**clone()**创建一个和我一模一样的,但不是我。**equals**等于,我=你,有一些共同点。**wait**多线程,等候。Inheritance继承。在继承中,构造器不能被继承。Object下的核心方法。......

2022-07-19 11:31:21 68

原创 常量,变量(2022.7.18)

关键字有特殊含义的,被保留的,不能随便使用的字符。类名要求大驼峰式命名HelloWorld。变量在程序运行期间,内容可以发生改变的量。变量名要求小驼峰命名Boxcolor。标识符也叫标示符,标识符不能是关键字。常量在程序运行期间,固定不变的量。.........

2022-07-18 23:13:21 61

原创 类的补充(2022.7.18)

静态中不可以使用动态内容,动态可以使用静态(可以理解成静态为古人,动态为现代人,古人是不会认识现代人的,但是现代人是可以知道古人的)所有的方法都有返回值,void的方法返回值为空。静态成员的生命周期很长,类生他就生,类死他才死。[modifiers]中括号可有可无。角号必须有。[]中括号内的值必须为角号的值。1.描述每个对象应该包括的。modifiers修饰符。2.类描述了每个对象的。.........

2022-07-18 09:45:05 76

原创 zookeeper运行显示线程已启动

zookeeper运行显示线程已启动问题:Using config: /flink/zookeeper/zookeeper-3.4.13/bin/…/conf/zoo.cfgStarting zookeeper … already running as process 2803.找了半天没有解决方案…解决:删除dataDir文件的存储路径1.在VM上找到zookeeper_server.pid文件所在位置cd /usrcd /flinkcd zookeepercd

2022-05-24 12:37:22 155

原创 Super和This

Super和Thissuper代表父类,this代表当前对象this应用:可以返回当前对象可以指定当前对象成员属性可以指定当前成员方法调用本类的构造方法super应用:调用父类的成员属性调用父类方法调用父类构造方法注意:this和super不能被static使用super和this()只能有一个定义在第一行,所以只能出现其中一个...

2022-04-26 11:49:56 59

原创 基本类型和包装类型的区别

包装类型定义:JDK为每一个基本类型提供了对应的包装类型,包装类型可以和基本类型相互赋值,并且包装类型比基本类型功能更强大。区别:1.包装类型可以为null,而基本类型不可以2.包装类型可以用于泛型,基本类型不可以3.基本类型比包装类型更高效4.可以实现自动装箱和拆箱Integer i=1;//自动装箱int j=i;//自动拆箱...

2022-04-26 09:29:33 189

原创 线程内容二

阻塞队列BlockingQueueFIFO队列(先进先出):LinkedBlockingQueue,ArrayBlockingQueue优先级队列:PriorityBlockingQueue阻塞队列提供了take和put方法:如果队列为空则take阻塞,直到队列中有内容为止如果队列为满,则put将阻塞,直到队列有空闲位置为止JVM内存模型三大特性原子性,可见性,有序性原子性:一个操作是不可中断的,即使是多个线程一起执行的时候,一个操作一旦开始就不会被其他线程干扰。实现:Atom

2022-04-23 21:04:26 132

原创 线程内容一

线程线程的六种状态说明:一般教科书和很多网上都说是五种,但查阅Java底层代码显示是六种,总体含义差不多,就采用六种方式新建状态(NEW)线程对象被创建但未被使用可运行状态(Runnable)可能正在运行(Running),也可能在等待CPU时间片(Ready)阻塞状态(Blocked)等待获取一个排它锁,如果线程释放了锁,就会结束当前状态无限期等待(Waiting)等待其他线程进行显式唤醒,否则不会分配CPU时间片限期等待(Timed Waiting)无需等待其他

2022-04-23 19:47:53 391

原创 容器,Collection,Map

Java容器Java容器主要包括Collection和Map两种,Collection存储对象的集合,而Map存储键值对(两个对象)的映射表CollectionSetSet集合存储的元素是无序的,而且不允许存储重复的元素Set集合作用:1.检查某一个元素是否存在2.判断插入数据是否有重复元素Set分类1.TreeSet:基于红黑树实现,支持有序操作,例如在范围内查找元素的操作。HashSet查找的时间复杂度为O(1),TreeSet为O(logn)2.HashSet:基于Hash表实

2022-04-22 20:19:07 394

原创 Java和C++区别

Java和C++区别1.Java是单纯面向对象语言,C++既支持面向对象也支持面向过程2.Java通过虚拟机实现跨平台,C++依赖于特定平台3.Java没有指针,C++具有指针4.Java支持自动垃圾回收, C++需要手动回收5.Java不支持多继承,提供了接口,而C++支持多继承...

2022-04-20 17:55:52 2970

原创 JDK8新特性

JDK8新特性简要说一下JDK8新特性Lambda表达式提供了函数式接口Stream API改进JVM方法区,用元空间代替永久代Map集合数据结构优化:之前:顺序表+链表之后:顺序表+链表+红黑树

2022-04-20 17:52:41 620

原创 异常,泛型,注解

异常,泛型异常异常是指程序运行过程中发生的异常事件,通常是由外部问题导致的。在Java中异常属于对象通常分为两种:Error和ExceptionError表示无法处理的错误Exception分为两种:受检异常:需要使用try-catch进行捕获处理,可以从异常中恢复非受检异常:程序运行时错误,例如除0异常,会导致程序崩溃泛型泛型提供了编译时的类型安全监测机制。泛型的本质是参数化类型,也就是说操作的数据类型被指定为一个参数泛型的作用:增强代码的复用性注解Java注解是附加在代码的信

2022-04-20 17:48:29 232

原创 反射相关内容

反射概念:每个类都有一个Class对象,包含了与类相关的信息。当编译一个新类时,会产生一个同名的.Class文件,该文件内保存着Class对象类加载相当于Class对象的加载,类在第一次使用时才动态加载到JVM中,也可以使用class.forName(“com.mysql.jdbc.Driver”)这种方式来控制类的加载,该方法会返回一个Class对象反射可以提供运行时类的信息,并且这个类可以在运行时才加载进来,甚至在编译时期的.class不存在也可以加载进来。反射的优点:可扩展性类浏览器的可

2022-04-20 15:06:34 46

原创 final和static

final和staticfinal声明数据为常量,可以是编译时常量,也可以是运行时被初始化后不能改变的常量对于基本类型,final使数值不变对于引用类型,final使引用不变,也不能引用其他的对象,但是被引用的对象本身是可以被修改的方法被final修饰的方法不能被子类重写private方法隐式的被指定为final,如果在子类中定义的方法和基类中的一个private方法名称相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新方法。final声明类不允许被继承static1.

2022-04-19 20:52:40 70

原创 clone方法,深拷贝,浅拷贝

clone方法,深拷贝,浅拷贝clone方法定义:clone方法返回与当前对象的一个副本对象,可以通过操作副本对象而不影响当前对象其中,clone方法并不是Cloneable接口的方法,而是Object的一个protected方法。如果一个类没有实现Cloneable接口又调用clone方法,就会抛出CloneNotSupportedException浅拷贝拷贝对象和原始对象的引用类型引用同一个对象深拷贝拷贝对象和原始对象的引用类型引用不同的对象我们可以将男孩比喻为一个类,将电

2022-04-19 20:24:14 245

原创 toString方法的小知识

toString方法toString方法的功能是将一个对象返回为字符串形式,它会返回一个String实例。在实际应用中通常重写toString方法,给对象提供一个特定的输出模式,当这个类转换为字符串或者与字符串连接时,将会自动调用重写的toString方法...

2022-04-19 20:00:06 314

原创 switch的小知识

switch的小知识从Java 7开始,可以在switch条件判断语句中使用String对象switch不支持long类型,因为switch设计初衷就只是针对有少数的几个值进行等值判端如果需要判断的值过多,最好使用if比较合适...

2022-04-19 18:05:37 94

原创 Java中形参,实参,值传递,引用传递

Java中形参,实参,值传递,引用传递学习值传递,和引用传递很容易令人迷糊,那么就来仔细的分析一下。想明白这个问题首先要知道形参和实参实参:就是我们要传递给方法的实际参数形参:就是我们方法签名上定义的参数形参和实参在代码上的位置public class A { public static void example(int a){//形参 System.out.println(a+1); } public static void main(Strin

2022-04-19 16:58:37 1255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除