
java基础
文章平均质量分 67
changzhiqiang_
一个单身的程序员,渴望代码无bug
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA8 hashmap源码阅读笔记(红黑树链表)
一:hashmap的13 个成员变量static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; -> 数组默认初始容量:16static final int MAXIMUM_CAPACITY = 1 << 30; -> 数组最大容量2 ^ 30 次方static final float DEFAULT_LOAD_FACTOR = 0.75f;原创 2017-07-18 22:08:29 · 10645 阅读 · 5 评论 -
深入浅出理解JAVA 8 Lambda表达式 Stream
JAVA 8 发布于2014年3月19日但是很多大公司现在还在用 JAVA 5 或者 JAVA 6,不过JAVA 新特性 Lambda 表达式 帮助我们开发者 Write less, do more,作为开发者的我们还是有必要详细了解的因此 本文将要详细讲解 JAVA 8 的Lambda 表示使用作为新特性 开发者使用应先阅读由Oracle公司发布的官方文档,基本了解Lambda 使用范围 ht原创 2017-05-18 21:14:59 · 3801 阅读 · 0 评论 -
从面试题i = i++; 了解java内存模型
先问大家一个问题: int i = 0; i = i ++; System.out.print(i);// 结果为 0 int i = 0; int j = i ++; System.out.print(j);// 结果为 0 System.out.print(i);// 结果为 1首先该代码在C/C++平台运行 结果是1 因为C/C++所有操作都原创 2017-09-23 22:18:44 · 2186 阅读 · 0 评论 -
java虚拟机垃圾回收执行流程
判断对象是否存活算法一: 引用计数算法: 当对象被创建时为其分配一个引用计数器,每当有位置访问时,该计数器数值就加一,当引用失效时,计数器值就减少1,任何时刻计数器引用为0的对象便不可能在被访问,但这不是java虚拟机堆对对象判断存活的方式,原因在于:难以解决对象之间相互引用如下例子public class TestGC { private Object object = n原创 2017-09-05 07:31:35 · 855 阅读 · 0 评论 -
代理模式三种实现案例
阅读本文需要一定面向对象以及类反射机制基础反射机制详解代理模式的主要作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的思想:为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 因此我们可以通过代理模式来实现对某个原创 2017-08-14 08:36:51 · 8939 阅读 · 0 评论 -
ForkJoinPool分支合并框架 核心思想->代码演示
线程池架构Fork-Join 框架就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。工作窃取 模式(work-stealing)当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,当该线程队列没有需要执行的任务时,再从一个随机线程的队列中偷一个并把它放在自己的队列中。相对于一般的线程池实现原创 2017-07-05 20:16:07 · 957 阅读 · 0 评论 -
JAVA 8 新时间 API java.time 使用简介
新的java.time包内类默认均采用ISO-8601时区标准<给计算机看的时间> Instant 时间戳 在时间线上的瞬间点 在ISO- 2007-12-03T10:15:30 -> 2007-12-03T10:15:30 .000Z。 <自己使用的日期时间> LocalDate 在ISO- 2007-12-03 -> 2007-12-03 。 LocalDateTime 在I原创 2017-07-13 23:16:59 · 663 阅读 · 0 评论 -
synchronized 和 lock 基本使用以及死锁分析
1.未加锁多线程程序未加锁可能产生安全问题线程未加锁可能造成数据重复访问如下程序 public class SellTickets implements Runnable{ private int ticketNumber = 100; @Override public void run() { while(true){ if(tic原创 2017-06-07 00:39:54 · 1475 阅读 · 0 评论 -
类加载过程和反射机制使用详解
1.类的加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。连接验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 static{}语句块 解析 将类的二进制数据中的符号原创 2017-06-09 01:35:09 · 958 阅读 · 0 评论 -
史上最清晰易懂的JAVA深克隆和浅克隆讲解
深入浅出了解面向对象的深克隆和浅克隆阅读本文需要一定的面向对象基础和JavaIO流的相应知识!深克隆(要实现深克隆被克隆类以及被克隆类的引用必须实现Serializable接口)(未实现接口会抛出NotSerializableException异常) 定义:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被原创 2017-05-05 15:18:55 · 4528 阅读 · 0 评论 -
BeanUtils使用及其方法分析
BeanUtils被广泛的使用与三大框架。主要解决的问题是:把对象的属性数据封装到对象中。该工具提供字符式操作为对象属性提供封装。BeanUtils底层使用反射机制实现数据访问及封装使用前的准备工作 将commons-beanutils-1.9.3中的commons-beanutils-1.9.3.jar 将commons-logging-1.2中的commons-logging-1.2.jar原创 2017-06-09 23:28:17 · 4692 阅读 · 0 评论 -
java.nio --Path--Files--基本使用
Java NIO(New IO或 Non Blocking IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。接下来几天我将努力学习,并分享nio包学习成果以下是nio包 interface Path的基本使用package com.xiaoqiang;impor原创 2017-06-30 22:34:46 · 527 阅读 · 0 评论 -
JAVA线程并发性之CAS算法,模拟实现代码
在了解算法之前,我们先对回顾基本概念:原子性:具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题。volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见,使得对临界区资源的修改可以马上被其他原创 2017-07-04 12:43:24 · 751 阅读 · 1 评论 -
java nio 新的四种文件传输 直接缓冲与非直接缓冲 速度对比
直接缓冲区与非直接缓冲区:非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在JVM 内存 中 直接缓冲区:通过 allocateDirect() 方法或其他方法分配缓冲区,将缓冲区建立在物理内存中。可以提高效率;ORACLE 官方对直接缓冲与非直接缓冲解释直接与非直接缓冲区 字节缓冲区要么是直接的,要么是非直接的。如果为直接字节缓冲区,则Java 虚拟机会尽最大努力直接在原创 2017-07-03 13:26:01 · 1757 阅读 · 0 评论 -
JAVA集合类基础特性
Set集合 (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相同:继转载 2017-05-12 17:26:20 · 444 阅读 · 0 评论 -
一篇文章带你复习mysql事务相关概念
MySQL数据库事务隔离级别READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READ(mysql默认事务级别)SERIERLIZED不可重复读和幻读到底有什么区别呢?数据库的悲观锁和乐观锁实现上有什么区别呢?READ-UNCOMMITTED存在脏读问题(读取未提交数据)A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的...原创 2019-09-11 14:59:04 · 362 阅读 · 0 评论