- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 网络IO——BIO、NIO
学习整理源自:https://blog.youkuaiyun.com/vtopqx/article/details/88115899
2021-03-29 00:26:13
205
4
原创 列表和队列
文章目录ArrayList基本实现迭代ForEach迭代的本质迭代器接口迭代器的优势ArrayList实现的其他接口ArrayList的特点LinkedListArrayList基本实现ArrayList是一个泛型容器,可以理解为动态数组。主要方法有添加元素、查询元素下标、通过下标查询元素、移除元素等。其实现类似于StringBuilder,也是以一个数组存储元素,只不过这个数组并不是特定类型的元素,而是Object[]。类似StringBuilder,ArrayList也有一个默认数组长度为10
2021-03-15 23:49:49
615
原创 泛型
泛型即广泛的类型,是类型参数化,处理的数据类型是不固定的,作为参数传入。基本原理:Java编译器将泛型代码转换为普通的非泛型代码——将类型参数T、K擦除,替换为Object;并且插入必要的强制类型转换。Java虚拟机实际执行时,对泛型是不感知的。泛型主要体现在开发环境和编译阶段,能使代码具有更好的安全性和可读性。(泛型替换Object和强制类型转换)public class Node<T, K> { //泛型放在类名后 private T element; private
2021-03-11 01:15:37
126
原创 随机-Random
目录认识随机Random随机举例简单随机密码洗牌认识随机// Test1for(int i = 0; i < 5; i++) { System.out.println(Math.random());}结果:0.459043689558392250.116668967738641220.74655485430625580.075554136929575690.13414951911779593Math.random方法如下,类似静态内部类实现单例的形式,在Math中定义了单
2021-03-09 02:24:33
193
原创 包装类与String
目录包装类以Integer为例剖析包装类Integer中的二进制运算位翻转循环移位包装类包装类基本类说明BytebyteShortshortIntegerintint i = 125; Integer intObj = Integer.valueOf(i); int i2 = intObj.intValue();LonglongFloatfloatDoubledoubleBooleanbooleanChara
2021-03-05 22:49:45
167
1
原创 异常Throwable
这里写目录标题认识异常异常类体系异常处理异常使用认识异常异常是相对于return(正常退出)的一种退出机制。当JVM发现一些非正常情况时,无法继续执行了,启用异常处理机制:先创建一个异常对象并抛出(throw),然后查找看谁能处理这个异常;会从当前函数开始查看谁捕获了该异常,当前函数没有就查看上一层函数,直到主函数。如果异常没有被捕获会使用默认处理机制:输出异常栈信息并退出。没有异常机制时,程序员通过函数返回值判断是否异常,return是推出的唯一机制。正常逻辑和异常逻辑混杂在一起,难以理解和维护。
2021-03-05 01:03:25
199
1
原创 类的继承与对象创建过程
文章目录继承基本概念根父类Object继承的细节对象创建过程继承基本概念根父类ObjectJava中,没有声明父类,也会有一个隐含的父类Object。它是所有类的父类。提供了基础的方法:获取对象的类型getClass、对象哈希值hashCode、equals、clone、toString;notify、notifyAll和wait方法与synchronized配合使用,用于加锁之后的信号量等待和通知发送;finalize与GC相关,当垃圾收集器将其对象标记为可回收时,会调用,可以重写该方法实现特
2021-03-03 03:41:47
440
原创 使用String存储和分配可用资源
问题遇到一些资源存储和分配的问题,例如,某种资源的取值范围为1-65535,需要动态分配和回收。在Java中最小的数据类型为byte,如果使用byte[65535]在内存和库中存储,至少需要65KB空间,当网络中此类资源池过多时,会造成内存资源大量消耗。解决思路利用String来存储和描述id:1-65535的占用情况。如"2-5,20,30,40-45,105-120,300,400-500,600-700,1000-1050,2000-65535"表示可用id有:2、3、4、5、20、30、40、
2021-02-28 04:11:45
281
2
原创 Synchronized以及锁的状态
Java对象头以Hotspot虚拟机为例,对象头包括标记字段Mark Word和类型指针Klass Pointer。Mark Word:默认存储对象的HashCode,分代年龄、锁标志位信息。这些信息与对象自身定义无关。Klass Point:对象指向它的类元数据的指针,虚拟机通过该指针来确定这个对象是哪个类的实例。Monitorsynchronized获取对象的监视器锁,如果该监视器锁计数器为0表示没有被持有,则该线程获取锁(monitorenter),并将计数器加1;当该线程再次获取同一个
2021-02-21 02:25:45
465
1
原创 悲观|乐观锁、自旋|互斥锁、公平|非公平锁
解析锁——悲观|乐观锁、自旋|互斥锁、公平|非公平锁悲观锁总认为最坏的情况可能会出现,即认为数据很可能会被他人修改,因此在持有数据时总是先把资源或数据锁住。这样其他线程要请求这个资源时就会阻塞,直到悲观锁释放资源。关系型数据库中应用比较广泛,如行锁、表锁、读锁、写锁等都是在操作前先上锁。Java中的Synchronized和ReentrantLock等独占锁也属于悲观锁。读写都加锁,导致其性能较低,对于现在互联网的高性能、高可用、高并发来说,悲观锁应用的越来越少了,但是对于多写场景还是必要使用悲观
2021-02-20 00:40:08
178
1
postgresql-12.5-1-windows-x64-binaries.zip
2021-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人