会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
FireCode
Go outside, feel the world!
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
下一页
2020年8月15日
网络协议
摘要: 一、网络 7 层架构 7 层模型主要包括: 1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 2
阅读全文
posted @ 2020-08-15 21:34 FireCode
阅读(332)
评论(0)
推荐(0)
2020年8月14日
CyclicBarrier、CountDownLatch、Semaphore 同步器的用法
摘要: 一、CountDownLatch(线程计数器 ) CountDownLatch 类位于 java.util.concurrent 包下,利用它可以实现类似计数器的功能。比如有一个任务 A,它要等待其他 4 个任务执行完毕之后才能执行,此时就可以利用 CountDownLatch来实现这种功能了。 f
阅读全文
posted @ 2020-08-14 21:44 FireCode
阅读(140)
评论(0)
推荐(0)
Java 阻塞队列
摘要: 一、Java 阻塞队列原理 阻塞队列,关键字是阻塞,先理解阻塞的含义,在阻塞队列中,线程阻塞有这样的两种情况: 1.1 当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。 1.2 当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空
阅读全文
posted @ 2020-08-14 21:25 FireCode
阅读(276)
评论(0)
推荐(0)
2020年8月13日
CAS与AQS
摘要: 一、CAS(比较并交换-乐观锁机制-锁自旋) 1.1 概念及特性 CAS(Compare And Swap/Set)比较并交换,CAS 算法的过程是这样:它包含 3 个参数CAS(V,E,N)。V 表示要更新的变量(内存值),E 表示预期值(旧的),N 表示新值。当且仅当 V 值等于 E 值时,才会
阅读全文
posted @ 2020-08-13 22:27 FireCode
阅读(894)
评论(0)
推荐(0)
Java锁
摘要: 一、乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作
阅读全文
posted @ 2020-08-13 21:50 FireCode
阅读(176)
评论(0)
推荐(0)
JAVA 集合
摘要: 一、接口继承关系和实现 集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,可以通过迭代器
阅读全文
posted @ 2020-08-13 15:05 FireCode
阅读(142)
评论(0)
推荐(0)
Java IO/NIO
摘要: 一、常见IO模型 1.1 阻塞 IO 模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用
阅读全文
posted @ 2020-08-13 14:04 FireCode
阅读(140)
评论(0)
推荐(0)
2020年8月5日
MySQL的四种事务隔离级别
摘要: 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性
阅读全文
posted @ 2020-08-05 10:34 FireCode
阅读(1503)
评论(0)
推荐(0)
2020年8月4日
生产者---消费者问题
摘要: 一、管程法 /** * 并发协作模型:生产者消费者实现方式:管程法 * 借助缓冲区 * @author DARK * */ public class CoTest01 { public static void main(String[] args) { SynContainer container=
阅读全文
posted @ 2020-08-04 10:30 FireCode
阅读(131)
评论(0)
推荐(0)
2020年7月20日
多线程并发详解
摘要: 一、Java 线程实现/创建方式 注意: • 新建的线程不会自动开始运行,必须通过start( )方法启动 • 不能直接调用run()来启动线程,这样run()将作为一个普通方法立即执行,执行完毕前其他线程无法并发执行 • Java程序启动时,会立刻创建主线程,main就是在这个线程上运行。当不再产
阅读全文
posted @ 2020-07-20 08:51 FireCode
阅读(3239)
评论(0)
推荐(1)
2020年7月15日
JVM类加载机制
摘要: 一、JVM类加载机制 虚拟机把描述类的数据从 .class 文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的 java 类型。 JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 1.1 加载 加载是类加载过程中的一个阶段
阅读全文
posted @ 2020-07-15 08:42 FireCode
阅读(390)
评论(0)
推荐(0)
2020年7月12日
Java虚拟机JVM及垃圾回收机制
摘要: 一、内存模型及分区 JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息
阅读全文
posted @ 2020-07-12 22:30 FireCode
阅读(917)
评论(0)
推荐(0)
2020年7月9日
数组在内存中的分配
摘要: 对于 Java 数组的初始化,有以下两种方式: 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度,如: //只是指定初始值,并没有指定数组的长度,但是系统为自动决定该数组的长度为4 String[] computers = {"Dell", "Lenovo", "Appl
阅读全文
posted @ 2020-07-09 21:06 FireCode
阅读(1356)
评论(0)
推荐(0)
wait 和 sleep 的区别
摘要: sleep 的源码: pub1ic class Thread implements Runnable { //native 表示调用操作系统底层实现的方法 pub1ic static native void sleep(1ong millis) throws InterruptedException
阅读全文
posted @ 2020-07-09 20:50 FireCode
阅读(503)
评论(0)
推荐(0)
Cloneable 接口实现原理
摘要: Cloneable接口是Java开发中常用的一个接口, 它的作用是使一个类的实例能够将自身拷贝到另一个新的实例中,注意,这里所说的“拷贝”拷的是对象实例,而不是类的定义,进一步说,拷贝的是一个类的实例中各字段的值。 在开发过程中,拷贝实例是常见的一种操作,如果一个类中的字段较多,而我们又采用在客户端
阅读全文
posted @ 2020-07-09 20:21 FireCode
阅读(1859)
评论(0)
推荐(0)
Arrays.sort 和 Collections.sort 实现原理和区别
摘要: Collection和Collections区别 java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。 java.util.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。 然后还有
阅读全文
posted @ 2020-07-09 20:07 FireCode
阅读(1734)
评论(0)
推荐(0)
2020年7月8日
Java获取反射的四种方法
摘要: 1. 通过new对象实现反射机制( 对象.getClass() ) 2. 通过路径实现反射机制( Class.forName("包名.类名") ) 3. 通过类名实现反射机制 ( 类名.Class ) 4. 通过类加载器xxxClassLoader.loadClass()传入类路径获取:通过类加载器
阅读全文
posted @ 2020-07-08 17:49 FireCode
阅读(8804)
评论(0)
推荐(0)
变量的四种引用
摘要: 强引用 只要引用存在,垃圾回收器永远不会回收,在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存
阅读全文
posted @ 2020-07-08 17:29 FireCode
阅读(1189)
评论(0)
推荐(0)
2020年7月6日
finalize方法
摘要: finalize是一个属于0bject类的一 个方法,而Object类是所有类的父类,该方法一般由垃圾回收器来调用,当我们调用system. gc()方法的时候,由垃圾回收器调用finalize() ,回收垃圾,一个对象是否可回收的最后判断。当然,这里的调用sysytem.gc() 只是建议JVM垃
阅读全文
posted @ 2020-07-06 17:34 FireCode
阅读(226)
评论(0)
推荐(0)
2020年7月5日
多线程
摘要: 1.定义多线程类的两种方式: a) extends Thread b) Implements Runnalbe2.线程的状态: a) new 新生态 b) 就绪状态(调用start方法后) c) 运行状态. d) 阻塞状态 i. sleep: 不会释放持有的对象锁 ii. join:等待另一个线程执
阅读全文
posted @ 2020-07-05 18:58 FireCode
阅读(177)
评论(0)
推荐(0)
容器
摘要: Collection 一、List (有序,可重复) 1、ArrayList底层用数组实现。线程不安全,效率高 2、LinkedList:底层用双向链表实现。线程不安全,效率高 3、Vector:底层用数组实现。线程安全,效率低 4、和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率
阅读全文
posted @ 2020-07-05 18:49 FireCode
阅读(230)
评论(0)
推荐(0)
Java内存机制
摘要: 栈 1. 存放局部变量 2. 不可以被多个线程共享 3. 空间连续,速度快 堆 1. 存放对象 2. 可以被多个线程共享 3. 空间不连续,速度慢。但是灵活 方法区 1. 存放类的信息:代码、静态变量、字符串常量等 2. 可以被多个线程共享 3. 空间不连续,速度慢。但是灵活详细分析请看
阅读全文
posted @ 2020-07-05 18:43 FireCode
阅读(230)
评论(0)
推荐(0)
方法重载与重写
摘要: 方法重载(Overload): 两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序) 返回值不同,构成重载吗? No 形参名称不同,构成重载吗? No 方法重写(0verride): 子类定义一个和父类方法名,参数完全相同的方法。 =: 方法名保持一致 >=: 子类权限修饰符可以
阅读全文
posted @ 2020-07-05 18:25 FireCode
阅读(237)
评论(0)
推荐(1)
Java数据类型
摘要: 基本 数据类型 a) 数字 i.整数: byte(1 个字节) ,short(2 个字节),int(4个字节,整型常量默认该类型),long(8个字节) ii.浮点数: float(4 个字节) ,double(8 个字节,浮点常量默认为该类型) b) 字符char(2个字节) c) 布尔boole
阅读全文
posted @ 2020-07-05 18:14 FireCode
阅读(176)
评论(0)
推荐(0)
标识符
摘要: 标识符(给类、方法、变量起名): 1.以字母(采用 Unicode字符集)、下划线、$开头 2.其余部分可以是: 字母(采用Unicode 字符集)、下划线、$、 数字 3.不能为关键字
阅读全文
posted @ 2020-07-05 18:09 FireCode
阅读(314)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
下一页
公告