自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中使用clone实现深克隆方法及原理解析

Java中使用clone实现深克隆的实现方法及原理解析

2022-10-15 20:41:33 2036 1

原创 优先级队列PriorityQueue

由于优先级队列其实就是一个堆,所以在了解优先级队列之前,要确保有堆的概念大根堆:是一个完全二叉树,父节点的值大于或等于子节点的值小根堆:是一个完全二叉树,父节点的值小于或等于子节点的值优先级队列在不指定Comparator的时候,就是一个小根堆,可以根据元素的自然顺序来排列,也可以根据Comparator来设置排序规则优先级队列特点:队列是用数组实现,但是数组大小可以动态增加,容量无限。不是线程安全的。保证线程安全可以使用PriorityBlockingQueue 类。..

2022-05-03 14:50:17 483

原创 Linux中设置Java程序开机自动运行

Linux中设置Java程序开机自动运行确定有运行这个文件的权限chmod +x /etc/rc.local创建一个脚本(需将Java环境配置进去)# vim /usr/test.sh# !/bin/bashJAVA_HOME=/usr/local/java/jdk1.8.0_221CLASSPATH=.:%JAVA_HOME%/lib:%JAVA_HOME%/jre/libPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binexport

2022-03-15 09:03:23 1265

原创 在Ubuntu中安装FRR构建虚拟路由器

将Ubuntu中LXC容器通过FRR构建成虚拟路由器

2022-02-12 11:19:50 3377

原创 Ubuntu下tc命令配置网络时延、丢包、带宽

Ubuntu下配置网络时延、丢包、带宽等,可应用于容器内。

2022-01-03 17:31:50 5471

原创 Java基础整理(二十三)

注解(Annotation)1. 基本概念注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件自定义注解的语法格式:[修饰符列表] @interface 注解类型名{ }/* 自定义注解 */public @interface MyAnnotation {}使用方式注解使用时的语法格式@注解类型名注解可以出现在类上、属性上、方法上、变量上等,还可以出现在注解类型上2. JDK常用内置注解java.la

2021-12-29 18:45:09 177

原创 Java基础整理(二十二)

反射机制(下)传送门:反射机制(上)8. 反射属性Field(1)常用方法Student类public class Student { //4个Field,分别采用了不同的访问控制权限修饰符 private String name; protected int id; boolean sex; public int no;}注:其实一个属性就代表一个Field,即private String name是一个Field,boolean sex是一个F

2021-12-25 11:15:56 396

原创 Java基础整理(二十一)

反射机制传送门:1. 基本概念反射机制有什么用?通过Java语言中的反射机制可以操作字节码文件(class文件)反射机制的相关类在java.lang.reflect.*包下反射机制相关的重要的类有哪些?java.lang.Class:代表整个字节码,代表一个类型,整个类java.lang.reflect.Method:代表字节码中的方法字节码,代表类中的方法java.lang.reflect.Constructor:代表字节码中的构造方法字节码,代表类中的构造方法java.

2021-12-25 11:12:57 85

原创 Java基础整理(二十)

多线程(下)传送门:多线程(上)11. 线程同步(1)线程安全其实,在以后的开发中,所有的项目都会运行在服务器上,而服务器已经将线程的定义,线程对象的创建,线程的启动等都实现完了。而我们更需要关注的是在多线程并发的环境下,数据的安全性!这里拿两个人同时去银行对一个用户取钱为例什么时候数据在多线程并发的环境下会存在安全问题呢?条件一:多线程并发条件二:有共享数据条件三:共享数据存在修改行为满足以上三个条件之后,就会存在线程安全问题如何解决线程安全问题呢?使用“线程同步

2021-12-22 09:49:41 237

原创 Java基础整理(十九)

多线程1. 基本概念什么是进程?什么是线程?进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列。进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位。一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程

2021-12-22 09:43:24 322

原创 Java基础整理(十八)

IO流(下)传送门:10. BufferedReader带有缓冲区的字符输入流,使用这个流的时候不需要自定义char数组,或者说不需要自定义byte数组,自带缓冲public class Demo { public static void main(String[] args) throws Exception{ FileReader reader = new FileReader("test.txt"); //当一个流的构造方法需要

2021-12-12 20:58:59 358

原创 Java基础整理(十七)

IO流(上)传送门:通过IO可以完成硬盘文件的读写,java中所有的流都在:java.io.*下1. 分类按流的方向分以内存作为参照物输入流:往内存中去,叫做输入(Input),或者叫做读(Read)输出流:从内存中出来,叫做输出(Output),或者叫做写(Write)按照读取数据的方式分字节流按照字节的方式读取数据,一次读取一个字节byte,等同于一次读取8个二级制位。这种流是万能的,什么类型的文件都可以读取。包括:文本文件、图片、声音文件、视频等假设:文件fil

2021-12-12 20:55:46 339

原创 Java基础整理(十六)

对Java集合部分总结(下)

2021-12-07 20:46:50 165

原创 Java基础整理(十五)

对Java集合部分的总结(上)

2021-12-07 20:42:05 124

原创 Java基础整理(十四)

Java异常总结

2021-12-07 20:38:22 56

原创 Java基础整理(十三)

包装类、日期、数字、枚举包装类因为8种基本数据类型不够使用,比如说要将一个数字作为参数传入一个方法中,而方法的形参是Object类型。java为8种基本数据类型对应准备了8种包装类型。8种包装类型属于引用数据类型。1. 八个包装类基本数据类型包装类型btyejava.lang.Byte(父类Number)shortjava.lang.Short(父类Number)intjava.lang.Integer(父类Number)longjava.lang.

2021-11-14 22:31:40 256

原创 Java基础整理(十二)

String类1. 基本概念及内存String表示字符串类型,属于引用数据类型,不属于基本数据类型Java中随便使用双引号括起来的都是String对象Java中规定双引号括起来的字符串是不可变的,也就是说“abc"自始至终都不变,都不可能变成”abcd“在JDK中双引号括起来的字符串直接存储在”方法区“中的”字符串常量池“中字符串存储在”字符串常量池“中的原因是:字符串在实际开发中使用频繁。为了提高效率,所以把字符串放到了方法区的字符串常量池中(JDK7以后字符串常量池好像移动到

2021-11-06 22:29:42 101

原创 Java基础整理(十一)

包机制、访问控制权限、Object类、匿名内部类包机制为什么使用package?package是java中包机制。包机制的作用是为了方便程序的管理。不同功能的类分别存放在不同的包下。package怎么用?package是一个关键字,后面加包名package com.baidu.javasepackage语句只允许出现在java源代码的第一行包名有没有命名规范?一般都采用公司域名倒叙的方式公司域名倒序 + 项目名 + 模块名 + 功能名import使用impor

2021-10-29 08:24:13 67

原创 Java基础整理(十)

抽象类和接口14. 抽象类抽象类为什么无法实例化,无法创建对象?抽象类是类和类之间有共同特征,将这些具有共同特征的类再进一步抽象形成了抽象类。由于类本身是不存在的,所以抽象类无法创建对象。抽象类属于引用数据类型final和abstract不能联合使用,这两个关键字对立abstract修饰符可以用来修饰方法也可以修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的特点:没有方法体,以分号结

2021-10-20 22:32:57 76

原创 Java基础整理(九)

super和final12.super关键字super关键字代表的就是“当前对象”的那部分父类型特征super可以在子类中调用父类的变量或方法,私有方法和变量无法被继承,也不能调用package com.bobo.base;public class Demo { public static void main(String[] args) { Student student=new Student(); student.test("Lisa");

2021-10-16 22:19:35 49

原创 Java基础整理(八)

this关键字this是什么?在内存中如何存储?this是一个变量,是一个引用。 this保存当前对象的内存地址,指向自身。this存储在堆内存当中对象的内部。严格意义上说,this代表的就是当前对象this只能使用在实例方法或构造方法中。谁调用这个实例方法,this就是谁为什么this不能使用在静态方法中?this代表当前对象,静态方法不存在当前对象"this."大部分情况下可以省略public class Demo { public static void mai

2021-09-29 23:22:20 58

原创 Java基础整理(七)

static关键字实例相关的,必须先有对象才能通过 “引用.” 访问,可能会出现空指针异常静态相关的,不需要对象的参与即可通过 “类名." 访问,没有空指针异常发生空指针异常只有在什么情况下发生?只有在”空引用“访问”实例“相关的,都会出现空指针异常静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了,静态变量存储在方法区什么时候变量声明为静态的?如果这个类型的所有对象的某个属性值都一样,不建议定义为实例变量,浪费内存空间。建议定义为类级别特征,定义为静态变量,

2021-09-27 23:00:40 62

原创 Java基础整理(六)

面向对象——封装继承多态6. 封装封装就是对数据的隐藏,应禁止访问一个对象中数据的实际表示,而通过操作接口来访问。我们的程序追求就是——高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法给外部使用。属性私有,使用get/set调用作用:提高程序的安全性,保护数据隐藏代码的实现细节统一接口增加系统的可维护性示例代码:public class Demo { public static void main

2021-09-14 22:50:44 43

原创 Java基础整理(五)

面向对象1. 面向过程vs面向对象面向过程思想:步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题2. 什么是面向对象面向对象编程(Object-Oriented Programming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象的

2021-09-11 23:09:13 48

原创 Java基础整理(四)

数组1. 内存分析:数组内存分析:2. 数组基本特点长度确定,一旦被创建,大小不可以改变。如果越界,则报错:ArrayIndexOutofBoundsException元素必须是相同类型数组中的元素可以是任何数据类型,包括基本类型和引用类型数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量数据本身也是就是对象,Java中的对象在堆中,因此数组无论保存原始类型还是其他对象类型。数组对象本身是在堆中的3. 数组的使用For-Each循环(强类型循环

2021-09-09 19:05:41 50

原创 Java基础整理(三)

方法1. 静态方法与非静态方法静态方法:与静态成员变量一样,属于类本身,在类装载的时候被装载到内存中,不自动进行销毁,会一直存在内存中,直到JVM关闭。非静态方法:又称实例化方法,属于实例对象,实例化之后才会分配内存,必须通过类的实例来引用,当实例对象被JVM回收之后,也跟着消失。区别:静态方法是在类中使用static修饰的方法,在类定义的时候已经被装载和分配。非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。静态方

2021-09-06 22:33:39 60

原创 Java基础整理(二)

1. 变量变量主要分为局部变量、实例变量和类变量局部变量在方法内部定义,必须声明和初始化值,且作用域只在这个方法中才有效。实例变量从属于对象,如果不自行初始化,这个类型的默认值为0或者0.0,布尔值默认为false,char类型默认为空。除了基本类型,其余默认值均为null。public class Demo { //实例变量 char c; String name; public static void main(String[] a

2021-09-04 22:50:48 40

原创 Java基础整理(一)

Java基础整理(一)标识符所有标识符都应该以字母(大写或小写)、美元符号($)或下划线(_)开始首字符之后可以是字母(大写或小写)、美元符号($)、数字或下划线(_)组成标识符具有大小写敏感不能使用关键字作为变量名或方法名数据类型Java中数据类型分为两大类:基本类型、引用类型1.八大基本类型字节大小表示范围byte1个字节-128~127short2个字节-32768~32767int4个字节-2147483648214748364

2021-09-02 22:55:44 54

空空如也

空空如也

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

TA关注的人

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