xiangzhihong8的专栏

技术群:515980159,278792776;招聘群:188716429

Stackoverflow上人气最旺的10个Java问题

1、 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较: 01 public static void main(String[] args) throws Pa...

2016-04-15 08:56:38

阅读数 2911

评论数 0

java的双缓冲技术

Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色。在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理。本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单动画实例展开,对屏幕闪烁的原因进行了分析,找出了闪烁成因的关键:update(Graphics...

2016-03-19 23:54:17

阅读数 2334

评论数 0

Hibernate之初体验

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低?       如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。       这难道是学习的最终目的吗?       ...

2016-03-11 17:57:06

阅读数 2153

评论数 0

java 的序列化和反序列化的问题

绝对经典

2015-05-05 23:26:45

阅读数 2442

评论数 0

Java并发编程之Future和FutureTask

搞过Java或者客户端Android开发的都知道,创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。不过,这2种方式都有一个缺陷,就是在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这就涉及到线程切换...

2019-05-09 16:23:59

阅读数 57

评论数 0

Java 11新特性

概述 美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本,将支持到2026年,可以使用下面的地址进行下载:Java 11官方下载 版本更新说明 在Java的版本上,按照官方的说法,Java ...

2018-09-30 16:33:50

阅读数 205

评论数 0

Java基础之HashTable与ConcurrentHashMap解析

HashTable和HashMap的区别 在面试的过程中,经常会被问到HashTable和HashMap的区别,下面就这些区别做一个简单的总结。 1、继承的父类不同 Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类,但二者都实现了Map接口。...

2018-05-30 14:49:30

阅读数 318

评论数 0

Java并发基础你需要知道的基础知识

多线程和并发编程是Java里面的核心内容,通常有以下一些概念需要重点掌握。 线程; 锁; 同步器; 并发容器和框架; Java并发工具类; 原子操作类; Executor框架(执行机制); 并发基础概念 可见性和原子性 可见性:一个线程修改了共享变量的值,另一个线程可以读到这个修改...

2018-05-28 14:54:05

阅读数 332

评论数 0

Java并发编程之CountDownLatch

CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。 说到这,给大家举一个最典型的例子:假设一条流水线上有三个工作者:worker0,worker1,worker2。有一个任务的完成需要他们三者协作完成,worker2可以开始这个...

2018-05-24 22:26:57

阅读数 83

评论数 0

SQLite读写同步之WAL机制

WAL简介 在数据库读写操作中,经常会有人问到数据库读写同步的问题,即在数据库操作中,数据正处于写状态,此时要读取的数据为空状态,问怎么操作。其实,说到这就不得不提到数据库的一个重要的机制WAL,不管是后端的PostSql还是前端的SqlLite,都会涉及到WAL机制。 WAL的全称是Writ...

2018-05-24 18:06:32

阅读数 1136

评论数 0

JVM 运行机制及其原理

最近出去面试,总被问到Java JVM相关的东西,什么JVM的内存模型、JVM的内存分配、内存回收、内存回收算法…搞得我一头雾水,早些年还看过一些,蹭着有时间给大家也给自己总结下JVM相关的知识。 JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构...

2018-05-22 22:15:09

阅读数 6958

评论数 1

浅谈Java动态代理

动态代理其本质是设计模式中的代理模式,主要由抽象角色、代理角色和真实角色组成: 抽象角色(Subject):声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色(Proxy):代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供...

2018-04-13 10:29:30

阅读数 145

评论数 0

ScheduledThreadPoolExecutor原理探究

简介 ThreadPoolExecutor是Executors中一部分功能,下面来介绍另外一部分功能也就是ScheduledThreadPoolExecutor的实现,后者是一个可以在一定延迟时候或者定时进行任务调度的线程池。 Executors其实是个工具类,里面提供了好多静态方法,根据用户...

2018-01-07 16:48:36

阅读数 584

评论数 0

JVM体系结构认知

虚拟机何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象。其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或者是依赖倒转原则),通过一层抽象提取底层实现中共性的部分,底层实现这个抽象并完成自己个性的部分。也...

2017-11-18 14:31:39

阅读数 873

评论数 2

Kotlin极简教程(第一章 Kotlin简介)

1.1 kotlin简史科特林岛(Котлин)是一座俄罗斯的岛屿,位于圣彼得堡以西约30公里处,形状狭长,东西长度约14公里,南北宽度约2公里,面积有16平方公里,扼守俄国进入芬兰湾的水道。科特林岛上建有喀琅施塔得市,为圣彼得堡下辖的城市。1.1.1 Kotlin概述我们这里讲的Kotlin,就...

2017-10-26 14:38:50

阅读数 1378

评论数 0

深入理解Java之JVM堆内存分配

Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 Java把内存分成两种:栈内存和堆内存。关于堆内存和栈内存的区别与联系。简单的来讲,堆内存用...

2017-04-20 22:16:56

阅读数 11165

评论数 1

深入理解Java之垃圾回收

概述由于JVM中垃圾收集器的存在,使得Java程序员在开发过程中可以不用关心对象创建时的内存分配以及释放过程,当内存不足时,JVM会自动开启垃圾收集线程,进行垃圾对象的回收。 那么垃圾回收线程到底是什么时候触发,并如何实现垃圾回收的呢?本文将对openjdk的源码进行分析,并通过代码分析Java...

2017-04-04 22:36:49

阅读数 2379

评论数 0

深入理解Java之jvm启动流程

概述当我们写一个Java类,并重写Main方法,程序就能运行起来。main方法的背后,程序为什么能运行,jvm究竟做了什么处理?要理解这些,就需要了解jvm的设计原理以及启动的流程。虚拟机的启动入口位于share/tools/launcher/java.c的main方法,整个流程分为如下几个步骤:...

2017-03-24 21:46:25

阅读数 8811

评论数 5

从代码层读懂HashMap的实现原理

概述 Hashmap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。它的key、value都可以为null,映射不是有序的。       Hashmap不是同步的,如果想要线程安全的HashMap,可以通过Collection...

2017-03-19 22:25:26

阅读数 3112

评论数 2

java的断言(assert)

概述在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检...

2016-11-30 11:27:36

阅读数 3200

评论数 1

提示
确定要删除当前文章?
取消 删除