Java
Tyella
喜欢一切新奇好玩的事物
展开
-
JDK性能监控工具
JPS 查看Java进程 jps // 显示传递给JVM的参数 jps -v // 显示传递给main方法的参数 jps -m // 显示应用程序主类的完整包名或应用程序 JAR 文件的完整路径名。 jps -l jstat 用于观察Java应用程序运行时相关信息的工具。 // 显示有关垃圾收集堆行为的统计信息。 -gc // 显示JVM中各分区的容量和使用情况 -gccapacity // 显示有关垃圾收集统计信息的摘要,以及上次和当前垃圾收集事件的原因。 -gccause // 显示新原创 2021-10-24 09:55:24 · 97 阅读 · 0 评论 -
Java复习
一、COllections.sort内部原理 Collection.sort()排序通过泛化实现对所有类型的排序,对于基础类型如int,string,按照字符表,数字大小排序。对于自定义类型,通过实现Comparable接口,重写comparableTo()方法自定义比较大小的方式。也可以使用Comparator外比较器,Comparable接口的方式比实现Comparator接口的耦合性要强一...原创 2019-03-04 16:44:54 · 437 阅读 · 0 评论 -
线程的生命周期和状态转移
一、一个线程两次调用start()方法会出现什么情况 Java的线程是不允许启动两次的,第二次调用start()方法会抛出IllegalThreadStateException,这是一种运行时异常。多次调用start()会被认为是一种编程错误。 二、线程的生命周期 Java的线程状态被定义在公共枚举类java.lang.Thread.state中。一种有六种状态: 新建(NEW):表示线程...原创 2019-02-21 12:09:30 · 1452 阅读 · 0 评论 -
正确理解Thread Local的原理与适用场景
本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ ThreadLocal能解决什么问题 由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例...转载 2019-02-14 15:47:49 · 593 阅读 · 0 评论 -
Java基础知识
一、Java平台概述 Java是一种面向对象的语言,有两个特征。一是“一次编译,到处运行”,获取了跨平台的能力。二是垃圾回收机制,JVM自动进行垃圾回收,不需要手动释放。 我们日常接触的JRE就是Java运行环境,包括JVM和Java类库。JDK是Java开发工具集,是JRE的超集,除了JVM和Java类库,还包括一些其他工具。 Java是解释执行,这句话不太准确。通常我们开发的Java代码...原创 2019-02-24 11:33:50 · 111 阅读 · 0 评论 -
Java中static作用及用法详解
概述 static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在执行,那么这块内存就会一直存在。这样做有什么意义呢?在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用它们的成员,那么普通情况下必须先实...转载 2019-01-21 14:56:39 · 382 阅读 · 0 评论 -
详解Java嵌套类与内部类
一、什么是嵌套类 嵌套类是任意声明在另一个类或接口中的类,最外层的类不是嵌套类。通常可将嵌套类分为两种:静态嵌套类和内部类。如下: class OuterClass { ... class NestedClass { ... } } 嵌套类可以分为两种,静态的和非静态的,即静态嵌套类和非静态嵌套类。非静态嵌套类又叫做内部类(Inne...原创 2019-01-06 16:15:22 · 2364 阅读 · 1 评论 -
Java快速失败(fail-fast)和安全失败(fail-safe)区别
转载自:https://blog.csdn.net/u010889616/article/details/79954413 一、快速失败 在使用迭代器对集合对象进行遍历的时候,如果A线程对集合进行遍历,正好B线程对集合进行修改(增加、删除、修改),则A线程会跑出ConcurrentModificationException异常。 原理是: 迭代器在遍历时直接...转载 2019-01-06 11:59:06 · 1545 阅读 · 0 评论 -
Java hashCode()和equals()的若干问题解答
本章的内容主要解决下面几个问题: 1.equals()的作用是什么? 2.equals()与==的区别是什么? 3.hashCode()的作用是什么? 4.hashCode()和equals()之间有什么联系? 第一部分 equals()的作用 equals()的作用是用来判断两个对象是否相等。 equals()定义在JDK的Object类中。通过判断两个对象的地址是否相等(即,是否是同一个对象)...转载 2018-09-30 00:07:03 · 133 阅读 · 0 评论 -
Java中接口和抽象类的区别
抽象类 抽象类是用来捕捉子类的通用特征的,它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层次里子类的模板。例子: public abstract class GenericServlet implements Servlet,ServletConfig,Serializable{ //abstract method abstract void service(ServletR...原创 2018-09-11 23:11:26 · 131 阅读 · 0 评论 -
Java基础
1.谈谈你对Java平台的理解? Java是一种面向对象语言,最显著的特征有两个方面。一是“一次编译,到处执行”,能够非常容易地获得跨平台能力;另外就是垃圾回收,Java通过垃圾回收器回收分配内存,大多数情况下,程序员不需要自己关心内存的分配和回收。 我们日常会接触到JRE(Java Runtime Environment)或者JDK(Java Development Kit)。JRE,也就是Ja...原创 2018-09-25 11:42:11 · 116 阅读 · 0 评论 -
Java提供了哪些IO方式?NIO如何实现复用?
一、Java提供了哪些IO方式? Java IO方式由很多种,基于不同的IO抽象模型和交互方式,可以进行简单区分。 首先,传统的Java.IO包,它基于流模型实现,提供了我们最熟知的一些IO功能,比如File抽象、输入输出流等。交互方式是同步、阻塞的方式。也就是说,在读取输入流或者写入输出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。 Java.io包的好处是代...原创 2018-09-26 21:08:41 · 2116 阅读 · 0 评论 -
HashTable,HashMap,TreeMap有什么不同
HashMap:一种存储键/值关联的数据结构。适用于在Map中插入、删除和定位元素。 TreeMap:一种键/值有序排列的映射表。整体顺序是由键的顺序关系决定的,通过Comparable或Comparator来决定。 HashTable:与HashMap类的作用一样,不过HashTable是同步的,现在是集合框架中的遗留类。如果对同步性没有任何要求,就适用HashMap,如果需要并发访问,就使用C...原创 2018-09-28 23:11:17 · 96 阅读 · 0 评论 -
HashMap的实现原理
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景极其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中。本文会对Java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。 目录 ...转载 2018-09-29 19:32:02 · 129 阅读 · 0 评论 -
Java反射技术详解
反射: Java反射机制是在运行状态中,对于任意一个实体类:都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。 反射的好处:大大增强了程序的扩展性 反射的基本步骤: 1.获得Class对象,就是获取到指定名称的字节码文件对象 2.实例化对象,获得类的属性、方法、构造函数 3.访问属性、调用方法、...原创 2018-09-30 22:37:35 · 157 阅读 · 0 评论