![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
gavin.jin
在这个套路过剩的年代,唯一的技巧就是坚持。
展开
-
配置java环境变量
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 配置java环境变量,先保存在这里,以便使用时好找到JAVA_HOME=D:\Program Files\Java\jdk1.6.0_02CLASS_PATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin编辑p...原创 2012-02-11 11:50:00 · 90 阅读 · 0 评论 -
面向对象的三个基本特征是:封装、继承、多态
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有...原创 2012-03-02 08:36:00 · 98 阅读 · 0 评论 -
CyclicBarrier使用与原理
1 CyclicBarrier简介CyclicBarrier,是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类。所谓Cyclic即 循环 的意思,所谓Barrier即 屏障 的意思。所以综合起来,CyclicBarrier指的就是 循环屏障,虽然这个叫法很奇怪,但是确能很好地表示它的作用。其作用在JDK注释中是这样描述的:A syn...原创 2019-06-26 22:59:32 · 4150 阅读 · 2 评论 -
java虚拟机----内存管理机制
运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都拥有自己的用途,并随着JVM进程的启动或者用户线程的启动和结束建立和销毁。根据《java虚拟机规范(java se 7版)》的规定:java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图:1程序计数器(Program Counter Register)程序计...原创 2019-08-01 09:29:52 · 118 阅读 · 0 评论 -
并发-------线程池ThreadToolExecutor
线程池五种状态线程池具有以下五种状态,当创建一个线程池时初始化状态为RUNNING RUNNING 允许提交并处理任务 SHUTDOWN 不允许提交新的任务,但是会处理完已提交的任务 STOP 不允许提交新的任务,也不会处理阻塞队列中未执行的任务,并设置正在执行的线程的中断标志位...原创 2019-08-08 13:22:27 · 503 阅读 · 0 评论 -
System property 系统属性变量
今天开发过程中,发现System.getProperty("line.separator")可以支持换行跨平台,例如各平台对应的换行符如下:\r: Mac ;\n: Unix/Linux ;\r\n: Windows或Http,为了自己的程序更好的支持跨平台,今天对System property大致研究一下,现做笔记如下,方面为了查阅。System property 概念在JAVA...原创 2019-08-10 23:28:38 · 3251 阅读 · 0 评论 -
类的加载机制
Java虚拟机类加载机制--概述当看到“类的加载机制”,肯定很多人都在想我平时也不接触啊,工作中无非就是写代码,不会了可以百度,至于类,jvm是怎么加载的我一点也不需要关心。在我刚开始工作的时候也觉得这些底层的内容距离我还很遥远,根本不用关系,可是随着做开发的时间越来越长,慢慢的已经意识到虚拟机相关要领的重要性。一直想写篇和虚拟机相关的文章,无奈之前由于各种原因一直没写,年初工作还不是很忙,抽...原创 2019-08-22 07:11:45 · 105 阅读 · 0 评论 -
Java垃圾回收机制
垃圾对象判定标准jvm的GC工作主要针对的对象是堆内存,在做GC工作之前,首先要判定堆内存中的对象实例是否为垃圾,通常使用以下两种算法来定义1.引用计数算法java在运行时,当有一个地方引用该对象实例,会将这个对象实例加1,引用失效时就减1,jvm在扫描内存时,发现引用计数值为0的则是垃圾对象,计数值大于0的则为活跃对象。目前垃圾回收算法,没有采用引用计数算法,原因是在对象...原创 2019-08-18 07:27:41 · 195 阅读 · 0 评论 -
如何创建不可变(Immutable)的Java类或对象
不可变对象(immutable objects),后面文章我将使用immutable objects来代替不可变对象!那么什么是immutable objects?什么又是mutable Objects呢?immutable Objects就是那些一旦被创建,它们的状态就不能被改变的Objects,每次对他们的改变都是产生了新的immutable的对象,而mutable Objects就是...原创 2019-08-31 23:24:58 · 378 阅读 · 0 评论 -
进程与线程之间的关系和区别 及 CPU调度
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。(3)处理机分给线程,即真正在处理机上运行的是线程。(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。...原创 2019-07-01 17:53:14 · 1736 阅读 · 0 评论 -
JAVA基础之理解JNI原理
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> NI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图:实例:环境...转载 2012-03-20 21:54:00 · 194 阅读 · 0 评论 -
java对象的强引用,软引用,弱引用和虚引用
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 众所周知,Java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,...原创 2016-11-10 00:21:00 · 85 阅读 · 0 评论 -
从程序员进阶到架构师,6大核心技能要领详解
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 检测自己的差距,java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计。希望能真正帮助到从程序员进阶到架构师之路的朋友。数据结构和算法算法分析与计算算法时间复杂度和空间复杂度的分析计算算法思想...转载 2019-02-15 23:58:00 · 190 阅读 · 0 评论 -
Thread.currentThread().getContextClassLoader()和Class.getClassLoader()区别
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> What is different between Thread.currentThread().getContextClassLoader() and Class.getClassLoader()?From API document, the Thread.currentThread().getConte...原创 2016-12-05 22:20:00 · 389 阅读 · 0 评论 -
进程和线程的区别
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口...原创 2014-03-20 00:22:00 · 685 阅读 · 0 评论 -
newinstance()和new有什么区别
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 在初始化一个类,生成一个实例的时候,newInstance() 和 new 有什么区别?用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展,可重用等软件思想上解释了。Java中工厂模式经常使用newInst...原创 2013-05-05 17:25:00 · 84 阅读 · 0 评论 -
java-RTTI初级学习------之一
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。1. 得到某个对象的属性 public Object getP...原创 2013-05-04 15:15:00 · 66 阅读 · 0 评论 -
java RTTI 之二
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> RTT(IRuntime Type Information”的缩写),意思是:运行时类型信息。其对应的类是Class对象,每个java类都对应一个Class对象(在编写并且编译后),这个对象被保存在这个类的同名class文件里。 类加载器在类被第一次静态调用(比如一个静态方法,一个...原创 2013-05-04 14:15:00 · 60 阅读 · 0 评论 -
JAVA深复制(深克隆)与浅复制(浅克隆)
面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> 1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。⑵深复制(深克隆)被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其...原创 2013-01-15 00:00:00 · 91 阅读 · 0 评论 -
面试必备之深入理解自旋锁
我对原文做了一点补充与修改,我觉得这篇文章写的非常非常好。深入学习,不光可以深入掌握自旋锁,可能提高自己的编程思想。原文作者对于自旋锁的思考很棒,为他点个赞。在我的上一篇文章:面试难点:你了解乐观锁和悲观锁吗?已经为大家对比了乐观锁与悲观锁。我们知道CAS算法是乐观锁的一种实现方式,CAS算法中又涉及到自旋锁,所以这里给大家讲一下什么是自旋锁。简单回顾一下CAS算法CAS算法即co...转载 2019-09-06 11:10:53 · 222 阅读 · 0 评论