
java基础
文章平均质量分 73
小时候可跳了
撩妹不如撩技术呀。大兄弟!
展开
-
java内部类
1.内部类的种类:静态内部类成员内部类局部内部类2.1静态内部类静态内部类其实差不多在一个类文件里创建另一个类,内部类对象不能访问外部类的成员变量,要创建该内部类还需要 new 外部类.内部类()的形式。静态内部类作用:一般我们是builder模式或者一些数据接收的嵌套对象时会采用这种写法,或者我们代码中需要拆出来一个类有特别的功能但是又想对外影藏这些细节进行一个封装2.2成员内部类成员内部类其实是作为一个外部类的成员变量的形式,内部不能声明static的变量原创 2022-04-13 21:48:26 · 357 阅读 · 0 评论 -
java cas原理解析
本文内容是假定读者已经有一些多线程的工作经验以及一些计算机系统原理知识的前提下进行介绍的,所以可能并不是说的很通俗易懂,也仅是个人作为一个知识的总结分享。相信大家在开发过程中对java的cas操作并不陌生,cas作为一种乐观锁的实现方式,我们在java.util.concurrent包下可以看到很多类都使用了cas的方式解决多线程并发问题:可以看到这些api的底层都是调用了Unsafe的方法, 我们在跟进去就是native方法了:基本上好多同学就被劝退了。也确实,只要JVM保证这原创 2022-03-12 14:48:25 · 715 阅读 · 0 评论 -
ConcurrentHashMap源码深入解读
1.针对resize的讲解,上源码:/**private final void addCount(long x, int check) { CounterCell[] cs; long b, s; if ((cs = counterCells) != null || !U.compareAndSetLong(this, BASECOUNT, b = baseCount, s = b + x)) { CounterCell c; long v; in原创 2021-09-28 21:40:41 · 153 阅读 · 0 评论 -
String、StringBuilder、StringBuffer区别及联系
关于三者的区别以及产生的原因首先介绍下String为Immutable类,任意字符串的拼接都会产生新的String对象,所以在进行很多字符串拼接的场景下会产生很多无用对象影响应用程序的性能,因而派生出了StringBuilder以及StringBuffer类型。其实就是为了解决字符串拼接时产生过多的无用对象,无论是StringBuilder或StringBuffer进行append()方法拼接时都会返回当前的this对象,而他们两者的区别就在于StringBuffer是线程安全的而StringBui原创 2021-02-25 00:37:37 · 347 阅读 · 0 评论 -
Integer什么时候会触发自动拆装箱
1.基础面试题里碰到过这样的操作:运行结果确是:第一个规则就是Integer value = xx,赋值操作,是调用Integer.valueOf进行装箱操作,变成Integer对象的所以第一个false很容易理解,因为Integer的cahe是在-128~127之间的。第二个false是因为a4 = a1 + a2时,涉及Integer对象间的基本加减乘除操作时是需要拆装成基本类型计算后,然后再装箱的,所以这里比较两个不同的integer对象,所以这里还是false第三个为tr原创 2020-09-23 09:50:37 · 824 阅读 · 0 评论 -
关于protected访问范围
1.同包中当前类、其他类都能访问2.不同包类,子类继承了父类的当前类中,可以访问父类的protected变量3.但是子类包的其他类不能通过子类或者父类访问到父类的protected变量。这里其实就可以推出一个结论就是,父类protected修饰的变量在不同包中约等于private,因为它还是可以被子类所在的当前类访问得到。...原创 2020-08-01 09:46:07 · 4253 阅读 · 0 评论 -
mysql安装
wget https://mirror.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tarrpm -qa | grep mysql 如果没有文件执行下一句rpm -qa | grep mariadb 强制卸载mariadb可以看到一个文件mariadb-libs-5.5.65-1.el7.x86_64执行rpm -e --nodeps mariadb-libs-...原创 2020-06-13 19:55:00 · 205 阅读 · 0 评论 -
关于dos命令下的classpath路径问题
在我们手动进行dos命令进行源文件的编译以及反编译的时候我们不得不注意classpath这个路径问题,classpath设置是为了jvm类加载器加载文件系统中的.java源文件。比如我们现在在c盘中,我们想编译d盘下某个路径的.java文件我们怎么办? 1.使用相对路径 2. 使用绝对路径类似上图一样。直接javac java源文件的绝对地址即可。但是我们在使用javap命令反编译字...原创 2018-04-27 10:53:25 · 559 阅读 · 0 评论 -
基本数据类型
类型booleanbytecharshortintlongfloat double封装类型BooleanByteCharacterShortIntegerLongFloatDoubleBit18161632643264基本类型在java结构中都是固定的,这样有利于跨平台对数据在内存中储存有个标准。要注意强制转换时的精度丢失问题:double b = 10.0d; int a = (int) b...原创 2018-04-25 15:02:09 · 127 阅读 · 0 评论 -
java中的位运算
看ArrayList源码过程中,看到扩容方法里有一段 int newCapacity = oldCapacity + (oldCapacity >> 1);的代码。发现 >>的运算。然后百度了解这是一个位移操作。右移: java中只有int类型才能进行左右位移运算。并且简单的口诀就是当十进制数进行位移运算时,右移1位相当于除以2的1次方舍去小数取整。例: 10...原创 2018-05-02 16:16:51 · 261 阅读 · 0 评论