java基础
文章平均质量分 92
吐蕃圣僧
能和我打成平手的,天底下没有几个!!
展开
-
java数字类型与byte数组的转换
最近写通信协议相关的项目, 自己封装了一套数据转换, 主要用于各种数据跟byte[]数组的转换, 可以直接哪去使用/** * @dec: byte 数据转换类 * @author: 鸠摩智 * @date: 2020/6/15 */public final class ByteUtils { private ByteUtils() {} /** * long值转化为byte数组 * * @param value 数值 * @param isBig 是否大端模式 .原创 2020-08-10 22:46:15 · 1520 阅读 · 0 评论 -
ThreadLocal源码分析
数据结构方法源码解读set 方法获取mappublic void set(T value) { //获取当前线程 Thread t = Thread.currentThread(); // 获取map, 该map保存在Thread对象成员变量中 ThreadLocal.ThreadLocalMap map = getMap(t); // 判断map是否为空 if (map != null)原创 2020-08-10 22:29:37 · 113 阅读 · 0 评论 -
手写ArrayList增删改查(笔记)
闲话少说, 原理大家都懂, 直接上代码/** * 手写一个ArrayList * @param <E> */public class MyArrayList<E> { /** * 当前存储的容量 */ private int size; /** * 存放对象的数组 */ private Object[] objects; /** * 数组初始容量 */ private static final int INITIAL_SIZE.原创 2020-06-25 21:28:26 · 207 阅读 · 0 评论 -
手写LinkedList代码(增删改查)笔记
开始的时候作者觉得这还不简单, 开始写的时候才发现键盘按不下去, 通过反复的阅读jdk的源码和反复的编写, 作者终于可以无压力的写出增删改查给初学源码的同学们建议, 最好还是自己去实现一遍下面是代码, 经过反复的阅读, 作者的代码已经和jdk的代码有高度的相似, 也有很多不足的地方/** * 自己实现一个双向链表 */public class MyLinkedList<E> { /** * 当前链表长度 */ private int size; /** *.原创 2020-06-25 18:23:10 · 298 阅读 · 0 评论 -
从semaphore分析aqs
介绍semaphore是一个java多线程并发工具包里面的一个并发工具类. 它主要用于协调多线程下的线程之间的通信. 它非常适用于限流.使用semaphore的使用很简单 , 我们模拟有一个线程池,最多只能同时被10个线程同时操作,如果超出10个, 就让后面的线程进行等待.import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.Semaphore;/** * 业务场景: 模仿一个数据库连接池,原创 2020-06-11 22:54:35 · 281 阅读 · 0 评论 -
关于PriorityQueue队列排序问题
java版本1.8发现问题, 发现PriorityQueue的排序居然没有任何效果, 程序如下public class MainTest { public static void main(String[] args) { PriorityQueue<Integer> tasks = new PriorityQueue<>( ...原创 2018-09-28 18:32:48 · 3642 阅读 · 3 评论 -
java编程思想之并发
并发这一集消耗了我太多的时间,但是还是差很多意思。并发的多面性使用并发需要解决的问题有多个,而实现并发的方式也有多种,并且在这两者之间没有明显的映射关系(通常只具有模糊的界限)。更快的执行并发通常是提供运行在单处理器上程序的性能。上下文切换(好像多线程并没有是没用,增加了上线文切换)阻塞,特别是io的阻塞事实上,从性能上来看,如果没有任务会阻塞,那么在单处理...原创 2018-06-19 23:58:26 · 229 阅读 · 0 评论 -
java-深虚笔记之内存区域
概述java程序员把内存控制的权利交给了虚拟机,一旦出现内存泄漏和溢出问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一项异常艰难的工作运行时数据区域程序计数器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖这个计数器来完成。每条线程都需要有一个独立的程序计数器,各个线程之间...原创 2018-07-08 13:04:30 · 205 阅读 · 0 评论 -
java编程思想笔记03-操作符
在最底层,java的数据是通过操作符来操作的.3.1 使用java操作符+ = - * ()辅助运算 /几乎所有的操作符都只能操作"基础类型".例外的操作符是 "=" "==" "!=",这些操作法能操作所有的对象,除此以外,string类支持 "+" 和"+=".3.3 优先级推荐直接使用括号即可(没必要记住优先级)3.4 赋值int a = 3;原创 2018-01-15 12:38:53 · 160 阅读 · 0 评论