自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 雪花算法的使用

雪花算法(Snowflake Algorithm)是一种用于生成唯一ID的分布式算法。它最初是由Twitter开发的,用于生成分布式系统中的唯一标识符。雪花算法的核心思想是将一个64位的整数ID分成多个部分,每个部分表示不同的信息。总体来说,雪花算法是一种简单且高效的分布式ID生成方案,但在特定场景下需要注意其一些缺点。雪花算法的使用(工具类utils)

2023-11-20 22:22:15 311

原创 7、线程池 线程池 常用的阻塞队列: 1、线程池的创建【重点】 2、ExecutorService的源码展示 3、线程池的工作流程、原理 4、饱和策略新提交 5、线程池的新API

LinkedBlockingQueue【链表】 阻塞队列中提供put()和take()方法【put添加、take获取】ThreadLocal是每个线程都独立创建的一个变量副本,可以用于避免多线程并发访问的安全问题。–线程池的新API【了解-newFixedThreadPool】–ArrayBlockingQueue【数组】–当take操作时,队列已空则会阻塞当前线程。–当put操作时,队列已满则会阻塞当前线程。......

2022-08-09 00:32:39 175

原创 翁恺程序设计入门 C语言、整理的笔记以及思维导图

翁恺程序设计入门 C语言、整理的笔记以及思维导图

2022-08-07 19:29:29 527

原创 6※、线程同步、同步锁、同步代码块的使用、同步锁释放的时机、ReentrantLock可重入锁、公平锁与非公平锁的区别、什么是死锁、线程间的通信(生产者和消费者模式)

确保代码执行的有序性、事务执行的完整性,数据共享的可靠性和正确性;在多线程并发的情况下,使得在同一个时间点只能有一个线程访问同步方法或同步代码块。:使用this作为当前同步方法的同步锁,只有获得此对象锁的线程才能执行同步方法中的操作。调用了sleep方法后,线程会进入阻塞状态,释放了cpu执行权,但是没有释放。:可以灵活定义同步修饰的代码区域,自定义同步锁,也能实现同步代码块的嵌套。–4、当线程进行等待时,调用了wait()方法。this是调用当前方法的对象的引用。思考:同步锁释放的时机。.........

2022-08-06 16:49:00 150

原创 5※、线程的理解、线程的创建、通过继承Thread类实现 【线程类】、通过自定义类实现runnable接口,定义一个【可重复利用】的【任务类】 【方便线程间共享数据】【可以使用匿名内部类】

自定义任务,任务可重复利用、方便线程间共享数据也可以使用匿名内部类的形式,用于执行一次性的任务操作在线程类中可以轻易的得到线程的信息id、name;线程任务是完全耦合的,不能给其他线程类复用任务在runnable任务类中不容易获取线程的信息,但是把任务进行抽离,可以多个线程复用任务资源共享问题: Thread 中的非静态成员变量是不共享的,静态是共享的在同一个任务类中的非静态成员变量是一样的,所以使用同一个任务的线程 -- 资源是共享的/*** @date 2022年8月4日。............

2022-08-04 23:16:56 249

原创 04、※NIO的理解、NIO的概念、缓冲区的读取数据、mark标志位置、reset回设的操作和通道文本数据获取与文本写出、生成电影票和文件中的内容和编写一个程序,是将两个文件的内容合并到一个文件中

–传统的IO流【本质上都是基于字节流】会进行【阻塞】操作、【一个字节一个字节操作】NIO【提供非阻塞的操作】【将数据以区域的形式映射到内存】【性能较高】【复杂、较难理解】–NIO提供了一个区域块的数据映射、异步的IO流操作【selector】–通道是用于获取流中数据–缓冲区是用于保存通道中的数据–NIO是将数据映射到内存,所以NIO的传输效率传统的IO流要好/* 缓冲区中的四个核心属性:读取数据mark标志位置的概念和reset回设的操作※–Channel【读写方法】 通道.Channe

2022-08-04 00:32:09 616

原创 3※、对象流、输出流、RandomAccessFile、序列化和反序列化、头部信息的获取、NotSerializableException解决和生成序列化版本号serialVersionUID

在类实现序列化时,建议生成序列化版本号,用于辨识当前类,即使类被修改之后,也能将字节序列反序列化为正确类型的对象【比如:学生类后期修改了结构,原来的数据要反序列化为对象】–在类实现序列化时,建议生成序列化版本号,用于辨识当前类,即使类被修改之后,也能将字节序列反序列化为正确类型的对象【比如:学生类后期修改了结构,原来的数据要反序列化为对象】–同一个对象只序列化一次,所以当对象数据修改后,再输出也是同样的数据(序列号相同,则不再序列化)(流有reset和没有reset的区别)【比如:同一个张三对象】...

2022-08-02 23:07:16 184

原创 2※、封装流(包装流派)、缓冲流【字节缓冲流、字符缓冲流】-->【字节缓冲流、字符缓冲流】 、字符集、转换流以及打印流

※缓冲流 【字节缓冲流、字符缓冲流】缓冲流【字节流】文件复制以及BufferedOutputStream的源码查看缓冲流【字符流】 【读取操作、写出操作】练习:文本排序:请将文本信息恢复顺序。【使用了字符流的读取和写出操作】输出的结果只会出现在控制台中不会进行转移到输出文件目录下面使用比较器进行升降序比较字符集※转换流、【InputStreamReader】、【OutputStreamWriter】案例:※打印流【字节流】和【字符流】 和 【out】源码查看......

2022-08-01 21:35:52 163

原创 ※基本数据类型的包装类、String类、String增强类StringBuilder和StringBuffer、BigDecimal类、Math类

基本数据类型的包装类、BigDecimal类、Math类基本数据类型的包装类基本数据类型 包装类【自动装箱、自动拆箱】BigDecimal​MathDate、SimpleDateFormat和Calendar日历以及练习Date、SimpleDateFormatCalendar练习:获取2020年和2021年的母亲节的日期,tips,5月份的第二个星期日,要求:输出时间格式为yyyy年MM月dd日.........

2022-08-01 00:40:48 169

原创 04※、静态入参匹配 、动态入参匹配 、动态入参匹配plus 、※static静态的和非静态的区别以及 初始化、初始化块(静态与非静态)以及在继承链中的顺序

​静态入参、static的用法、初始化块※静态入参匹配※动态入参匹配※动态入参匹配plus※static静态的和非静态的区别初始化以及初始化块(静态与非静态)以及在继承链中的顺序初始化块在继承链的顺序...

2022-07-31 23:56:57 133

原创 05※、Map集合介绍、HashMap、Hashtable、LinkedHashMap、Properties和Collections

Map集合什么是Map?–map是指一种用来存放映射关系数据的容器。什么是映射关系?–映射关系是指用一个键,与一个值所组成的关系对一个键对应到一个值,这个键是不能重复的,所以,通过键就能找到对应的值。...

2022-07-31 23:36:14 196

原创 04、Queue集合[单向、双向队列、有序、可重复]

在单向队列的基础上扩展,双头出入队的功能。–poll获取并移除头部元素。(3)当栈来使用。

2022-07-31 16:44:25 172

原创 01※、File使用用法和IO流的使用用法、文件夹下名字搜索、过滤器等操作用法、代码演示

File使用操作和Java中的IO流​File (文件类)图片演示操作一 文件方法使用操作二 搜索一个文件夹下的名字、过滤器操作三 遍历一个文件夹下的所有文件※IO流的理解--流的分类按照类型:注意:转义字符操作一:读取文件其中的字符个数和字符串的类型操作二:实现整个文件的内容打印输出操作三:在文件中输出内容操作三、1:在此加上try catch异常操作四 文件复制到另一个路径中 【多字节 效率快】操作五 文件复制到另一个路径中 【单字节 效率慢 】操作六、使用Rea....

2022-07-31 12:32:54 224

原创 3※、Set集合中的HashCode的存储工作原理、LInkedHashSet的使用用法和TreeSet二叉树的使用用法之中的定制排序和自然排序的使用

Set是无序的使用散列表结构存储数据,所以是不能通过索引来获取数据,而List是线性结构的,在存储上是连续的内存空间,所以List可以使用索引来获取数据。自然排序的实现方法存储的数据类型要实现Comparable接口,重写compareTo方法。自然排序的实现方法存储的数据类型要实现Comparable接口,重写compareTo方法。红黑树是一种平衡二叉树,在添加和删除元素时,会根据自身的情况调整树的结构,而保持树的平衡性。(无序的、不可重复的)............

2022-07-30 23:52:13 212

原创 2、Vector集合、Stack栈结构(了解)、LinkedList链表结构的特点的工作原理以及使用特点 以及解析集合中有序和无序

Vector集合、Stack栈结构(了解)、LinkedList链表结构的特点的工作原理以及使用特点 以及解析集合中有序和无序

2022-07-30 19:40:54 645

原创 关于Java error 编译异常 运行异常 【持续更新中】

--错误classPath不能随意加载环境变量0707--数值格式化异常--时间格式出错 --所输入的数组越界减少数组、内存数量即可 --导入和在类里定义重复出错

2022-07-27 21:33:38 111

原创 01※、Java中的集合(数据结构)、List集合的使用、 Iterator迭代器的源码以及ArrayList的工作原理、继承链和实现接口

确保容量是足够的】--判断是否为空的数组、一开始的时候先初始化长度为10--判断是否溢出,如果是则进行扩容,1.5倍的长度的扩容通过数组工具类中的copyOf方法扩容elementData[size++]=e;//然后我们打开Iterable看到下面的源码就是最大的接口到这里已经无法打开了。List的工作原理底层是通过数组来实现的,当存储的数据到达一定的个数的时候,会扩充集合的容量。//可以看到Collection是继承于Iterable的。..................

2022-07-26 19:57:17 289

原创 使用Java语言编程实现摇号机

摇号机的Java程序实现:摇号机的实现代码

2022-07-24 13:39:55 1253

原创 ※static静态的和非静态的区别

表示的静态的意思,属于类的,当使用到这个类的时候会静态加载静态的属性以及方法。--静态的是属于类的静态的东西是每个对象都共享的【同一个内存区域】--而非静态是属于对象的,每个对象都有一个独立的内存空间【互不干涉】--静态的代码块中,不能直接访问非静态的方法和属性,除非通过对象调用。--非静态代码块可以直接访问当前类中的非静态方法和属性。--有static修饰的则为静态的,没有的则为非静态。思考什么时候使用静态,什么时候使用非静态。--非静态的属性和方法要通过对象访问访问。......

2022-07-24 13:26:15 404

原创 ※02、继承的概念、方法重写的概念

-子类重写父类的方法,子类的返回值类型比父类的小或者相等【引用类型】【基本数据类型要一致或者类型提升兼容】《二》定义一个鸟类Bird,继承动物类的属性,子类重写父类的eat方法,定义一个移动move【飞行】的方法。--当子类中有和父类一样的私有化方法,那么子类的私有化方法是一个普通方法,并不是重写了父类的方法。--子类重写父类的方法,子类的抛出的异常类型要比父类的小或者相等。子类重写父类的方法(子类覆盖父类的方法),凸显出子类的行为特征。--子类重写父类的方法,子类方法的权限修饰符比父类的大或者相等。...

2022-07-24 13:21:46 257

原创 初始化块(静态代码块和非静态代码块)以及在继承链中的顺序

父类静态初始化块-->子类静态初始化块-->父类非静态初始化块-->父类构造器-->子类非静态初始化块-->子类构造器。

2022-07-22 12:35:56 369

原创 ※静态入参匹配、动态入参匹配和动态入参匹配plus

-根据调用方法的引用变量的运行时类型决定调用哪个类。1、确定调用哪个类【调用方法的变量的运行时类型确定】2、确定调用哪个方法【入参的变量的编译时类型确定】--根据入参变量的编译时类型决定调用哪个方法。(谁入参到这个方法就根据谁的编译时类型来决定)(谁调用了这个方法就根据谁的运行时类型来决定)...............

2022-07-22 01:02:58 373

原创 ※final关键字、编译时类型和运行时类型及引用类型的转换

1、方法调用时要注意是按照编译时类型来决定(编译时类型是决定你编程时是否会出现编译错误【语法】)2、在运行程序时,是通过运行时类型来决定是否出错(对象转换时,对象类型是否兼容)new出来的对象类型Student为运行时类型。引用变量定义的类型Person为编译时类型。举例动物里面有狗、猫。.........

2022-07-21 23:35:39 159

原创 ※、super父类的引用,加操作

-在构造器中super();写和不写都一样,因为系统会默认调用父类的无参构造器创建父类的对象。--super和this一样,都表示为一个对象引用,所以不能在静态代码块中使用。创建Student时Student-->Person-->Object。--父类的成员变量存放在父类的对象,而不是在子类的对象中;这里的//zhangan-->Person对象1。--而子类中定义的成员变量,还是存放在子类的对象中。//lisi-->Person对象2。插入一张图片方便理解。......

2022-07-21 22:02:06 292

原创 12※、if语句的使用和if语句练习

输入两个整数,放入到a与b变量中去,如果a>b就将a与b中的值进行交换,否则就不交换。目的就是要让a中放的值总是小于或等于b中的数,最后输出。18~25以下【包括25】存款100w流口水【达到要求】gun【没有达到】25~30【不包括25】存款1000w流口水【达到要求】gun【没有达到】--能整除4且不能整除100【2008】elseif(条件){执行体}elseif(条件){执行体}if(条件){执行体}if(条件){执行体}if(条件){执行体}............

2022-07-19 10:39:53 186

原创 01、面向对象的概念以及特征

格式com.域名.模块名com.baidu.模块名com.gec.beancom.gec.entitycom.gec.pojo比如三层架构com.gec.controllercom.gec.servicecom.gec.dao。对象才是一个具体存在的实体,从这个意义上来看,日常所说的人,其实都是人的实例,而不是人类.--5、在Java程序中默认导入java.lang.*,在使用类是可以可以使用全限定类名来进行操作。类(class)学生【抽象的,有共同特征的】外貌【属性、静态特征】.........

2022-07-18 12:44:37 425

原创 06、BigDecima

BigDecimal类是一个算术运算类,它可以给浮点类型的运算控制算术精度,但是要注意在创建对象是入参字符串类型的数据。记得导包java.math.BigDecimal。

2022-07-18 12:31:30 169

原创 04、Date、SimpleDateFormat和Calendar日历

-String类型表示日期转换为java.util.Date;--使用Date格式化输出String字符串。日期格式化SimpleDateFormat。日期类型java.util.Date。

2022-07-17 23:38:36 149

原创 03、Math

System.out.println(Math.sqrt(-50));//NaN为负数故此不输出结果System.out.println(Math.sqrt(25));//5.025的平方为5。Math.min(-10,15);//没有输出结果,无法进行比较minSystem.out.println(Math.min(-10,15));Math.max(10,50);//没有输出结果,无法进行比较maxSystem.out.println(Math.max(10,50));...

2022-07-17 23:28:20 59

原创 02※、 String增强类:StringBuilder 和 StringBuffer区别:

StringBuilder是线程不安全的String增强类,StringBuilder和StringBuffer都是容器,定义的api(方法)都相同。StringBuffer是线程安全的String增强类。StringBuilder没有线程安全(机制),而StringBuffer有线程安全的问题。例如"88123456789"-->"88,123,456,789"对于普通的操作,操作量不大时使用String。StringBuilder使用的时长2毫秒。对于大量的更新操作,使用字符串的增强类。...

2022-07-17 23:25:53 80

原创 01、基本数据类型的包装类

包装类是基本数据类型的引用类型,提供基本数据类型的数据转换和数据操作的方法。基本数据类型是数据数值。基本数据类型的包装类。

2022-07-17 23:13:45 181

原创 什么是Java语言 笔记总结【未完】

单词:author:作者width:宽度height:高度version:版本信息cmd:命令行提示符cd:cmd中使用转换目录document:(文件夹用来存放API文档)后续再更新

2022-07-17 22:57:35 91

原创 12.3※、循环的控制语句 break、continue、return、label(标签)的用法

continue加label的也是一样的这里我就偷偷懒不写那么详细了就写示例测试自己思考一下比较一下多动动手敲敲代码就懂了qwq。//label标签是结合控制语句一起使用的只适用两个控制语句于break和continue,return不适用。...............

2022-07-17 22:34:31 244

原创 13.1※[干货]、数组排序,冒泡排序、选择排序、正逆序折半二分查找法以及操作

数组排序,冒泡排序、选择排序、正逆序折半二分查找法以及操作它的工作原理是第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终............

2022-07-17 19:29:39 152

原创 12.2※、for循环练习

for循环练习题qwq有30人,可能包括男人、女人、小孩,他们在一饭店共消费50先令,其中每个男人花3先令,每个女人花2先令,每个小孩花1先令,求男人、女人、小孩各多少人?【30人50先令】【百鸡百钱】每一行的空格总行数-当前行的序号。每一行的星号2*n-1;总行数为7[7-i]...............

2022-07-17 10:17:47 115

原创 12.1※、循环语句while、do while、for、for嵌套循环和foreach

for(临时变量数据源)for(intiarr)嵌套循环的结果这个结果太长了你可以自己输出看看的qwq。循环中具备三大要素初始化的变量、条件、迭代。

2022-07-17 10:03:23 181

原创 13※、数组的使用

每一个索引代表的含义?newint[3][3];第一个索引表示的是多少个一维数组,第二个索引表示一维数组中有多少个数据。【引用类型】当前堆内存块中存放是该引用类型的对象地址。【基本数据类型】当前堆内存块中直接存放该数值。2、数组是一个引用类型、数组是一个对象数据,存放在堆内存中的。当前堆内存块中存放是该子数组的对象引用地址。1、变量是在栈内存中定义的,里面存放的是数组的引用地址。多维数组就是一个数组中包含多个数组。int[]arr;.........

2022-07-17 09:23:57 82

原创 11、eclipse的使用

-注意java环境要换成javaSE-1.8,不要换成jre-1.8。--5、在main方法的Java源文件运行程序。--快速复制ctrl+alt+上下箭头。--注释多行ctrl+shift+/--格式化代码ctrl+shift+f。--快速删除一行或多行ctrl+d。--万能提示键alt+/--输出语句syso+提示键。--注释一行ctrl+/--回撤ctrl+z。--导入包ctrl+shift+o。--3、修改字体大小。--3、指定项目名。.........

2022-07-16 20:41:24 144

原创 10※、Scanner使用方法、字面值和变量值

-nextInt();//读取用户输入的int整型数据,需要注意输入的数据类型要匹配;注意如果在nextLine();操作前使用了nextInt();等方法,nextLine()方法会读取到上面方法所输入的换行符。--nextLine();//读取用户输入的一行数据以换行符(回车)作为分隔。--nextDouble();//读取用户输入的double浮点型数据。--next();//读取用户输入的字符串数据。实现用户数据的交互,用户通过终端输入数据。//修改默认的结束符。.........

2022-07-16 20:37:58 216

原创 09、进制的转换 原码、反码、补码 二进制、八进制、十进制、十六进制的转换

二进制、八进制、十进制、十六进制的转换

2022-07-16 20:33:21 3468

空空如也

空空如也

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

TA关注的人

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