java
文章平均质量分 86
onlyloveonce
我是学生。其实我还是程序猿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 对象引用,以及对象赋值
Java对象及其引用 关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: ...转载 2018-03-12 21:25:42 · 198 阅读 · 0 评论 -
JVM入门——运行时数据区
jdk1.7.0_79 这张图我相信基本上对JVM有点接触的都应该很熟悉,可以说这是JVM入门的第一课。其中的“堆”和“虚拟机栈(栈)”更是耳熟能详。下面将围绕这张图对JVM的运行时数据区做一个简单介绍。程序计数器(Program Counter Register) 这和计算机操作系统中的程序计数器类似,在计算机操作系统中程序计数器表示这个进程要执行的下个指令的地址,对于JV...转载 2018-07-26 22:19:49 · 187 阅读 · 0 评论 -
Java弱引用(WeakReference)的理解与使用
看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept和java的GC相关. 很可惜的是, 20多个拥有5年以上java开发经验的面试者中, 只有两人知道weak reference的存在, 而其中...转载 2018-07-21 23:28:49 · 1421 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二....转载 2018-07-21 23:50:22 · 147 阅读 · 0 评论 -
ThreadLocal用法详解和原理
一、用法ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。1、ThreadLocal.get: 获取ThreadLocal中当前线程共享变量的值。2、ThreadLocal.set: 设置ThreadLocal中当前线程共享变量的值。3、ThreadLoc...转载 2018-07-22 00:03:56 · 551 阅读 · 0 评论 -
多线程中的ThreadLocal 详解
要了解ThreadLocal,首先搞清楚ThreadLocal 是什么?是用来解决什么问题的?ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问, 通常是类中的 private static 字段,是对该字段初始值的一个拷贝,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联我们知道有时候一个对象的变量会被多个线程所访问,这时就会...转载 2018-07-22 15:30:23 · 179 阅读 · 0 评论 -
Java包装类、自动装箱与拆箱知识总结
因为在学习集合时知道集合里存放的对象都是Object类型,取出的时候需要强制类型转换为目标类型(使用泛型集合不需要),如int a = (Integer)arrayList.get(0);然后我们就会发现,为什么要强制转换为Integer,而不是int呢?int与Integer有什么区别呢?1、基本类型与包装类区别int是基本类型,直接存数值;如:int i = 5;//直接在栈中分...原创 2018-07-22 23:08:24 · 346 阅读 · 0 评论 -
Java中的值传递和引用传递
理解Java中的值传递和引用传递,形参和实参1. 两大数据类型以及特殊的String8种基本数据类型 int char byte boolean long short float double 对象类型 1、8种基本数据类型的包装类型 2、数组等 3、定义的对象 特殊: String2. 两大引用类型基本类型 对象的引用 这两者是有区别的基本类型 对...转载 2018-07-22 23:22:34 · 175 阅读 · 0 评论 -
面试必备:常用的设计模式总结
单例模式 简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧public class Singleton { priv...转载 2018-08-06 16:20:28 · 453 阅读 · 0 评论 -
快速排序
快速排序,顾名思义,是一种速度快,效率高的排序算法。快排原理: 在要排的数(比如数组A)中选择一个中心值key(比如A[0]),通过一趟排序将数组A分成两部分,其中以key为中心,key右边都比key大,key左边的都key小,然后对这两部分分别重复这个过程,直到整个有序。 整个快排的过程就简化为了一趟排序的过程,然后递归调用就行了。 一趟...原创 2018-08-08 11:12:11 · 259 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先...转载 2018-08-22 21:11:20 · 151 阅读 · 0 评论 -
JVM常见垃圾回收算法
jdk1.7.0_79 众所周知,Java是一门不用程序员手动管理内存的语言,全靠JVM自动管理内存,既然是自动管理,那必然有一个垃圾内存的回收机制或者回收算法。本文将介绍几种常见的垃圾回收(下文简称GC)算法。 在Java堆上分配一个内存给实例对象时,此时在虚拟机栈上引用型变量就会存放这个实例对象的起始地址。Object obj = new Object(); 现在...转载 2018-07-26 21:51:54 · 371 阅读 · 0 评论 -
常用垃圾回收算法
今天我关于常见的垃圾回收算法来做个总结,我们最常听到的是Java虚拟机里的垃圾回收机制,其实垃圾回收的概念最先并不是Java里首先提出来的,垃圾回收这个概念很早就已经被提出来了,并且已经在其他语言中得到了应用。 关于垃圾回收的机制,这里不再解释,这篇文章我主要介绍常见的垃圾回收算法,当然还有其他的。算法一:引用计数法。 这个方法是最经典点的一种方法。...转载 2018-07-26 21:40:20 · 189 阅读 · 0 评论 -
Java并发编程中Semaphore的用法
Semaphore又称信号量,是操作系统中的一个概念,在Java并发编程中,信号量控制的是线程并发的数量。public Semaphore(int permits)其中参数permits就是允许同时运行的线程数目;下面先看一个信号量实现单线程的例子,也就是permits=1:package concurrent.semaphore;import java.util.concurrent.Sem...转载 2018-03-13 21:43:24 · 182 阅读 · 0 评论 -
File类中的list和listFiles方法
list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组测试:[java] view plain copypublic class FileTest { public static void main(String[] args) { ...转载 2018-05-24 16:53:05 · 5024 阅读 · 0 评论 -
java中fail-fast 和 fail-safe的区别
原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fail-safe-iterator-difference-with-example-in-java.html在我们详细讨论这两种机制的区别之前,首先得先了解并发修改。1.什么是同步修改?当一个或多个线程正在遍历一个集合Collection,此时另一个线程...转载 2018-07-24 21:58:58 · 427 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java...转载 2018-07-24 22:02:57 · 134 阅读 · 0 评论 -
Java提高篇(三四)-----fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败...转载 2018-07-24 22:16:20 · 120 阅读 · 0 评论 -
快速失败(fail-fast)和安全失败(fail-safe)的区别
1.fail-fast和fail-safe比较Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常。快速...转载 2018-07-24 22:29:02 · 535 阅读 · 0 评论 -
你对spring是如何理解的?
这是面试时经常被问到的问题,在此做一些整理:1.Spring是对j2EE诸多功能进行封装了的一个工具集;它的核心就是提供了一种新的机制来管理业务对象及依赖关系;具体就是控制反转、依赖注入,Aop(面向切面)。 Spring的底层实现机制是用Demo4j 解析XML文件,使用反射机制实例化bean。2.SpringIOC ,其实就是依赖注入、控制反转。相当于把每个bean与bean之间...转载 2018-07-24 22:32:35 · 587 阅读 · 0 评论 -
Mysql存储引擎 _MyISAM、InnoDB
一、 MySQL存储引擎MyISAM与InnoDB如何选择MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是两个。...转载 2018-07-24 22:54:57 · 118 阅读 · 0 评论 -
java父类调用被子类重写的方法
1.如果父类构造器调用了被子类重写的方法,且通过子类构造函数创建子类对象,调用了这个父类构造器(无论显示还是隐式),就会导致父类在构造时实际上调用的是子类覆盖的方法(你需要了解java继承中的初始化机制)。例子:[java] public abstract class Father { public Father() { display(); ...转载 2018-07-19 16:26:37 · 1894 阅读 · 0 评论 -
对象比较中equals与==的区别
关于变量之间的比较,可以分为基础类型变量的比较和对象之间的比较。对于基本类型来说,他们存储在jvm的栈中,因此比较的是变量的内容,也就是比较的变量的值。对于引用类型来说,因为对象内容存储在jvm的堆中,栈中只是存储对象的引用(地址),无论是==还是equals比较的都是栈中的内容,即对象的引用,也就是比较的是两个对象的地址。但根据创建对象的方式不同可以分为两种情况:1. 使用表达式...转载 2018-07-19 21:08:05 · 2051 阅读 · 0 评论 -
CAS原理分析
一、锁机制 常用的锁机制有两种:1、悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。悲观锁的实现,往往依靠底层提供的锁机制;悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。2、乐观锁:假设不会发生并发冲突,每次不加锁而是假设没有冲突而去完成某项操作,只在提交操作时检查是否违反数据完整性。如果因为冲突失败就重试,直到成功为止。乐观锁大多是基于数据版本记录机...转载 2018-08-22 21:35:38 · 167 阅读 · 0 评论
分享