![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 66
出走半生归来仍是少年
学历代表你的过去,能力代表你的现在,学习代表你的将来!
展开
-
java IO流常用知识面试总结
1.什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别答案Bit最小的二进制单位 ,是计算机的操作部分 取值0或者1Byte是计算机操作数据的最小单位由8位bit组成 取值(-128-127)Char是用户的可读写的最小单位,在Java里面由16位bit组成 取值(0-65535)Bit 是最小单位 计算机 只能认识 0或者1 8...转载 2018-07-23 20:36:24 · 851 阅读 · 0 评论 -
Java线程死锁查看分析方法、工具,怎么检查死锁,死锁的原因是什么?
Java线程死锁查看分析方法如何查看是否有Java线程死锁?下面介绍两种方法。一.Jconsole Jconsole是JDK自带的图形化界面工具,使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。 连接到需要查看的进程。 打开线程选项卡,然后点击左下角的“检测死锁” 。 j...转载 2018-07-28 23:08:51 · 6370 阅读 · 0 评论 -
详解synchronized与Lock的区别与使用
详解synchronized与Lock的区别与使用 引言:昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和使用情况,同时,对synchronized的使用过程一些常见问题的总结,最后是参照源码和说明文档,对Lock的使用写了几个简单的Demo。请大家批评指正。技术点:1、线程...转载 2018-07-29 13:23:51 · 168 阅读 · 0 评论 -
集合类 AVA常用集合类功能、区别和性能
Collection接口主要有两种子类分别为List和Set,区别主要是List保存的对象可以重复,而Set不可以重复,而Map一般为key-value这样的对应关系,比如我们常用的HashMap。一、List 主要有ArrayList、LinkedList、Vector和Stack有关这些子类的性能,Android开发网从插入、删除、移动等方面按照元素的执行效率做一一分析,通过分析Sun...转载 2018-07-29 14:38:24 · 349 阅读 · 0 评论 -
虚拟机性能监控与故障处理工具---jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler
虚拟机性能监控与故障处理工具---jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler 转:https://blog.csdn.net/wsyw126/article/details/62422005 概述给一个系统定位问题的时候,知识、经验是关键基础,数据是依据。工具是运用知识处理数据的...转载 2018-07-29 15:12:57 · 288 阅读 · 0 评论 -
进程间通信(IPC)介绍- 管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams
进程间通信(IPC)介绍进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNI...转载 2018-07-26 22:19:03 · 777 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和SemaphoreJava并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 ...转载 2018-07-26 22:54:21 · 115 阅读 · 0 评论 -
Java动态代理的两种实现方法
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercept...转载 2018-08-02 22:12:03 · 172 阅读 · 0 评论 -
集合 HashMap 的原理,与 Hashtable、ConcurrentHashMap 的区别?面试必问
同步首发:http://www.yuanrengu.com/index.php/2017-01-17.html原文:https://www.cnblogs.com/heyonggang/p/9112731.html如果你去面试,面试官不问你这个问题,你来找我^_^下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为...转载 2019-09-04 16:31:00 · 106 阅读 · 0 评论 -
Hash详解
Hash(哈希)Hash :散列,通过关于键值(key)的函数,将数据映射到内存存储中一个位置来访问。这个过程叫做Hash,这个映射函数称做散列函数,存放记录的数组称做散列表(Hash Table),又叫哈希表。JAVA函数hashCode()即请求对象的哈希值。Hash的优点先分类再查找,通过计算缩小范围,加快查找速度。例:集合:{13,19,25,27,17}若是采用数...转载 2019-09-12 09:53:05 · 853 阅读 · 0 评论 -
java.c++.c#.c的区别
java.c++.c#.c的区别C++则一般看作是对C语言的扩展。Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于缺点,我想正是源于其优点,因为它们能控制的编程元...转载 2019-09-12 10:27:58 · 146 阅读 · 0 评论 -
Java进阶(二) 什么是线程安全,怎么保证线程安全,线程安全的三个原则是什么?
Java进阶(二)当我们说线程安全时,到底在说什么 提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后对比volatile和synchroniz...转载 2018-07-28 23:03:02 · 5410 阅读 · 1 评论 -
线程的生命周期及状态转换详解
线程的生命周期及状态转换详解 (1)新建状态——(2)就绪状态—((4)阻塞状态)—(3)运行状态——(5)死亡状态 (1)New:创建线程对象后,该线程处于新建状态,此时它不能运行,和其他Java对象一样,仅仅有Java虚拟机为其分配了内存,没有表现出任何线程的动态特征; (2)Runnable:线程对象调用了start()方法后,该线程就进入了就绪状态(也称可运行状态)。处于就绪...转载 2018-07-28 22:38:40 · 169 阅读 · 0 评论 -
创建线程池的几种方式
创建线程池的几种方式 java类库提供一个灵活的线程池以及一些有用的默认配置;我们可以通过Executors的静态方法来创建线程池。newFixedThreadPool(int nThreads)创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程newCachedT...转载 2018-07-28 22:27:02 · 2070 阅读 · 0 评论 -
Java之IO,BIO,NIO,AIO知多少?
提出问题Java之IO,BIO,NIO,AIO知多少???解决问题前言本篇文章参考了网上很多大神的文章,包括一些代码实例。在文章最后都有写明出处。如果文章有写错的地方,欢迎留下评论。本篇文章是我录制视频《Java之IO,BIO,NIO,AIO知多少?》的讲课稿子。下面是视频地址,欢迎购买观看:http://edu.csdn.net/lecturer/lecturer_detai...转载 2018-07-23 21:14:40 · 146 阅读 · 0 评论 -
Java并发--Java线程面试题 Top 50
原文链接:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Jav...转载 2018-07-23 22:34:21 · 135 阅读 · 0 评论 -
java 21套经典面试题集锦----全会的都是大神级别,BAT随便挑
必读系列:第一套:《2018年最全Java面试通关秘籍第一套!》第二套:《2018年最全Java面试通关秘籍第二套!》第三套:《2018年最全Java面试通关秘籍第三套!》第四套:《2018年最全Java面试通关秘籍第四套!》第五套:《2018年最全Java面试通关秘籍第五套!》 是的,没有参考答案,这些题目都是需要你自己下去研究的,不要一眼就被面试官识破,你只是...转载 2018-07-26 21:22:58 · 784 阅读 · 0 评论 -
Exchanger的工作原理及实例
1.实现原理 Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执行exchange,当两个线程都到达同步点时,这两个线程就可以交换数...转载 2018-07-28 21:31:21 · 580 阅读 · 0 评论 -
java中的String,StringBuilder,StringBuffer三者的区别
最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,...转载 2018-07-25 23:06:49 · 84 阅读 · 0 评论 -
cookie 和session 的区别详解
cookie 和session 的区别详解这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用...转载 2018-07-29 13:10:10 · 82 阅读 · 0 评论 -
浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(st...转载 2018-07-25 23:06:39 · 90 阅读 · 0 评论 -
Java中HashMap的实现原理
最近面试中被问及Java中HashMap的原理,瞬间无言以对,因此痛定思痛觉得研究一番。一、Java中的hashCode和equals1、关于hashCodehashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的 如果两个对象相同,就是适用于equals(java.lang.Object) 方法...转载 2018-07-25 23:06:27 · 146 阅读 · 0 评论 -
hashmap冲突的解决方法以及原理分析:
hashmap冲突的解决方法以及原理分析:在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object&...转载 2018-07-25 23:05:31 · 192 阅读 · 0 评论 -
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别①HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals...转载 2018-07-25 22:49:05 · 113 阅读 · 0 评论 -
JAVA8 十大新特性详解
JAVA8 十大新特性详解 前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date...转载 2018-07-25 23:05:13 · 205 阅读 · 0 评论 -
ConcurrentHashMap的实现原理和源码分析
原文链接:http://www.jianshu.com/p/7f42ba895a64前言在Java1.5中,并发编程大师Doug Lea给我们带来了concurrent包,而该包中提供的ConcurrentHashMap是线程安全并且高效的HashMap,本节我们就来研究下ConcurrentHashMap是如何保证线程安全的同时又能高效的操作。1.为何用ConcurrentHashM...转载 2018-07-25 23:17:09 · 10052 阅读 · 4 评论 -
线程池原理(讲的非常棒)
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? ...转载 2018-07-30 21:29:36 · 87857 阅读 · 11 评论 -
【JVM】CMS垃圾回收器
一、简介Concurrent Mark Sweep,是一种以获取最短回收停顿时间为目标的收集器,尤其重视服务的响应速度。CMS是老年代垃圾回收器,基于标记-清除算法实现。新生代默认使用ParNew收集器,基于复制算法二、垃圾回收过程分为四个步骤进行垃圾回收:初始标记,并发标记,重新标记,并发清除。只有初始标记和重新标记需要停顿。初始标记。只是标记一下GC Roots能直接关联到...转载 2019-09-21 16:08:38 · 337 阅读 · 0 评论