
JavaSE
文章平均质量分 78
Benaso
这个作者很懒,什么都没留下…
展开
-
HashMap在Go与Java的底层实现与区别
在Java中hash表的底层数据结构与扩容等已经是面试集合类问题中几乎必问的点了。网上有对源码的解析已经非常详细了我们这里还是说说其底层实现。原创 2024-05-27 23:30:48 · 1314 阅读 · 0 评论 -
【无标题】
从linkedlist开始,逐步创建基于线性搜索法解决哈希冲突的哈希表和结合线性搜索和拉链法解决hash冲突的hash表原创 2024-04-07 23:57:40 · 926 阅读 · 0 评论 -
JavaSE学习笔记(十五.IO流)
2.处理流(也叫包装流)是"连接"在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能,也更加灵活。文件对我们并不陌生,是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件...都是文件。1.I/O 是 input/output 的缩写,I/O 技术是非常实用的技术,用于处理数据传输.如读写/文件,网络通讯等。注:BufferReader 类中,有属性Reader,即可以封装一个节点流,该节点流是任意的,只要是Reader子类。原创 2023-02-03 21:01:55 · 139 阅读 · 0 评论 -
JavaSE学习笔记(十四.线程基础)
2.也可以这样理解:线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成工作,其他线程才能对该内存进行操作。1.在多线程编程,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。2.多线程:同一时刻,可以执行多个线程,比如:一个QQ进程,可以同时打开多个聊天窗口,一个迅雷进程,可以同时下载多个文件。让出CPU,让其他线程执行,但礼让的时间不确定,所以也不一定礼让成功。原创 2023-01-31 15:48:24 · 89 阅读 · 0 评论 -
JavaSE学习笔记(十三.泛型)
3.public void eat(E e){} , 修饰符后没有 eat,方法不是泛型方法而是使用了泛型。4.泛型的作用是:可以在类声明时通过一个标识表示类中某个属性类型,或是某个方法返回值的类型,或者是参数的类型。3.静态方法中不能使用类的泛型(在加载类的时候就要确定类型,但是类型没有确定下来,所以无法使用)注释:使用泛型是使用了类声明的泛型,泛型方法是指即可以使用类声明的泛型,也可以使用自己声明的泛型。4.泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)原创 2023-01-24 00:29:54 · 93 阅读 · 0 评论 -
JavaSE学习笔记(一.java概述)
其他类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。如果程序没有错误,没有任何提示,但在当前目录下会出现一个Hello.class文件,该文件称为字节码文件,也是可以执行的java的程序。p s.[对修改后的Hello.java源文件需要进行重新编译,生成新的class文件后,再进行执行,才能有效]非javaDoc的注释,往往是给代码维护者看的,着重告诉读者为什么这样写,如和修改,注意什么问题等。原创 2023-01-20 13:23:18 · 182 阅读 · 0 评论 -
JavaSE学习笔记(二.变量原理)
变量相当于内存中的一个数及存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,格外注意。变量表示内存中一个存储区域【不同变量,类型不同,占用空间大小不同,比如:int 4个字节, double8个字节】utf-8(编码表,大小可变的编码,字母使用一个字节,汉字使用3个字节)原创 2023-01-20 13:31:19 · 152 阅读 · 0 评论 -
JavaSE学习笔记(三.运算符)
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。规则:将该数不断除以16 ,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。规则:从最低为(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。规则:从最低为(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。规则:从最低为(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。原创 2023-01-20 13:37:17 · 106 阅读 · 0 评论 -
JavaSE学习笔记(四.顺序控制)
特别说明:(1)多分支可以没有else,如果所有条件表达式都不成立,则一个执行入口都没有(2)如果有else,如果所有的条件表达式都不成立,则默认执行else代码块。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次循环。(不要超过3层,以至于影响可读性)说明:当条件表达式成立,即执行代码块1,否则执行代码块2,如果执行代码块只有一条语句,则{ }可以省略,否则,不能省略。:让程序有选择的执行,分支控制有三种1)单分支 ,2)双分支 , 3)多分支。原创 2023-01-20 13:41:35 · 150 阅读 · 0 评论 -
JavaSE学习笔记(六.数组)
基本思想是:通过对待排序序列从后向前(从下标较大的元素开始)依次比较相邻元素的值,发现逆序则交换,使值较大的元素逐渐从前向后移,就像水底的气泡一样逐渐向上冒。6.数组的下标不许在指定范围内使用,否则报:下标越界异常,例如int [ ] arr = new int [5];int n1= 2;2.二维数组实际上是由多个一维数组组成的,不相同的我们称之为列数不等的二维数组。初始化数组:语法:数据类型,数组名[] = {元素值,元素值...}1.数组是多个相同类型数据的组合,实现对这些数据的统一管理。原创 2023-01-20 13:44:12 · 176 阅读 · 0 评论 -
JavaSE学习笔记(七.面向对象编程初级)
比如人类:除了有一席属性(年龄,姓名)外,我们人类还有一些行为,比如:说话,跑步等等,也可以通过学习,做算术题,这时就要用成员方法才能完成。5.当一个方法执行完毕或者遇到return时就会返回,遵守谁调用,将结果返回给谁,同时当方法执行完毕或返回时,该方法也就执行完毕。2.跨类中的方法A类调用B类方法:需要通过对象名调用:需要通过对象名调用(先创建对象,在调用方法)。比如:对象名.方法名。7.一旦定义了自己的个构造器,默认构造器就覆盖了,就不能在使用默认无参构造器,除非显示的定义一下,即:Dog(){}原创 2023-01-20 13:49:18 · 210 阅读 · 0 评论 -
JavaSE学习笔记(八. 面向对象中级)
集成可以解决代码复用,让我们的编程更加接近人类思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。3.当创建子类对象时,不管使用子类哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在的构造器中用super()去指定父类的那个构造器完成对父类初始化工作,否则,编译不会通过。是面向对象的第三大特征,多态是建立在封装和继承基础之上的。原创 2023-01-20 13:56:17 · 189 阅读 · 0 评论 -
JavaSE学习笔记(面向对象高级)
由于创建子类对象实例会优先加载父类,所以父类的静态代码块和静态属性会按代码顺序来先输出,然后子类静态代码块和子类静态属性按代码顺序输出,然后子类的构造器被调用,先调用supper()方法会先调用父类的supper()(加入只有一个父类一个子类)然后调用父类普通代码块和父类普通代码块初始化,调用父类构造函数,然后调用子类普通代码块和普通属性初始化,最后调用子类构造函数。7.如果外部类和静态内部类成员重名时,静态内部类访问的时候,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.成员)去访问。原创 2023-01-20 14:01:47 · 147 阅读 · 0 评论 -
JavaSE学习笔记(九.枚举)
1.toString:Enum类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息。1.使用enum关键字后,就不能再继承其他类了,因为enum会隐式继承Enum,而java是单继承机制。1.当我们使用enum关键字开发一个枚举类时,默认会继承一个final的 Enum类。5.valueOf:将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常。3.枚举属于一种特殊的类,里面只包含一组有限的特定的对象。枚举队形名通常使用全部大写,常量的命名规范。原创 2023-01-20 14:04:07 · 114 阅读 · 0 评论 -
JavaSE学习笔记(十.JDK内置的基本注解)
被他修饰的Annotation将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解。这里如果写了@Override注解,编译器就回去检查该方法是否真的重写父类的方法,如果重写了则编译通过,如果没有构成重写则编译错误。用于指定该元Annotation 修饰的Annotation类将javadoc 工具提取成文档,在生成文档时,可以看到该注解。@Override: 限定某个方法,是重写父类的方法,该注解只能用于方法。可以修饰方法,类,字段,包,参数等等。原创 2023-01-20 14:06:30 · 294 阅读 · 0 评论 -
JavaSE学习笔记(十一.异常)
1.如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,此方法应显示的声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。4.可以有多个catch语句,捕获不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,如果发生异常,只会匹配一个catch。3.子类重写父类方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一直,要么为父类抛出的异常的类型的子类型。例如,一个整数“除以零”时,抛出此类的一个实例,案例演示。原创 2023-01-21 00:05:38 · 73 阅读 · 0 评论 -
JavaSE学习笔记(十二.包装类(Wrapper))
如果常量池没有"hsp",重新创建,如果有,直接通过value指向。2.StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率较高。练习,返回一个a ~ b之间的数:(int)(a)原创 2023-01-21 00:11:13 · 490 阅读 · 0 评论 -
Java学习笔记(十三.集合)
本章内容太多啦,老师讲了很多源码,学完一遍感觉学到了一些,但是还是很晕,很多追源码部分没有做笔记,如有需要还是去看看原视频原创 2023-01-22 21:04:00 · 296 阅读 · 0 评论