E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《深入理解Java
深入理解Java
虚拟机——StringTable——超级详细篇
文章目录1:String的基本特性2:String的内存分配3:String的基本操作4:字符串拼接操作4.1拼接操作与append操作效率比较5:intern()的使用5.1newString()到底创建几个对象5.2关于intern()的面试难题5.3intern的练习题6:StringTable的垃圾回收7:G1中的String去重操作1:String的基本特性String基本特性Strin
福建选手阿俊
·
2020-07-08 03:07
Java学习笔记
深入理解Java
虚拟机——执行引擎——超级详细篇
文章目录1:执行引擎概述2:Java代码编译和执行过程3:机器码,指令,汇编语言4:解释器5:JIT编译器5.1热点代码探测确定何时JIT5.1.1方法调用计数器5.1.2回边计数器5.2HotSpotVM设置模式——C1,C2编译器5.3Graal编译器与AOT编译器1:执行引擎概述执行引擎是Java虛拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其
福建选手阿俊
·
2020-07-08 03:07
Java学习笔记
一分钟用睡前小故事图解Java线程之死锁
Java线程之死锁
深入理解Java
线程安全——银行欠我400万!!!
Lukey Alvin
·
2020-07-08 03:48
JAVA学习
JVM发生GC时,什么样的对象会被回收?
援引《
深入理解java
虚拟机》中的一段叙述。关于对象不会被回收,业界一共有两种说法?
梦想-风清扬
·
2020-07-08 00:00
技术博客
对象回收
GC
ROOTS
JVM
关于Minor GC和Major GC的理解
此篇文章不是原创,内容来自于《
深入理解java
虚拟机》。仅作笔记使用。如有错误之处,请不吝指正,谢谢。在介绍之前,首先简单说一下堆内存的结构堆内存在大的结构上分为:年轻代和年老代。
梦想-风清扬
·
2020-07-08 00:29
Minor
GC
Major
GC
技术博客
程序员大佬推荐的java学习路线
先来个书籍清单:《Java编程思想》《大话设计模式》《重构改善既有代码的设计》、《effectivejava》《
深入理解Java
虚拟机》《Java并发编程实战》《深入理解计算机系统》、《tcp/ip详解卷一
qq_38432141
·
2020-07-08 00:36
java
学习
路线
入门
教程
深入理解java
虚拟机
深入理解JVM(一)类加载在Java代码中,类型(不表示对象,可以理解为class)的加载、连接与初始化过程都是在程序运行期间完成的(类型大多数都是存在的,也有在运行期动态生成的,例如动态代理)提供了更大的灵活性类型的加载最常见的情况:将已经存在的类的class文件从磁盘加载到内存里。连接:将类与类之间的关系确定好,对于字节码之间的处理如验证,校验初始化:对于静态变量赋值类加载器加载类的工具Jav
唐尧同学
·
2020-07-07 23:10
JVM
深入理解java
泛型
今天在这里我就说说java中的泛型,首先我们要先了解几个基本的问题1.什么是泛型?为什么会出现泛型?在说这个问题之前,我们先说一下List集合,我们在使用集合的时候,基本都会在后面加上一对尖括号,并在里面指定一个类型,例如List,表示这个集合中只能存放String类型的变量,这也是我们要说的泛型,在java5之前是并没有泛型的,在没有泛型的年代,如果我们要往List集合中存入元素的时候,无论你存
lexBBQ
·
2020-07-07 22:40
javaSE
深入理解JAVA
虚拟机读书笔记----调优案例分析与实战
性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈。高性能硬件上的程序部署策略一个web文档服务器使用了一个64位虚拟机运行系统,堆大小设置为12G,默认使用吞吐量优先收集器。访问量不算大,但是每10多分钟就会无响应十几秒,这个时间是绝对无法忍受的。查看日志发现是gc导致的停顿。文档会读入到内存,进入老年代,12G的内存回收起来需要很长的时间。这里的程序设计首先就有一定的问题,文
乌枭
·
2020-07-07 22:22
java
【
深入理解Java
虚拟机 】类的加载器
1.类加载器的分类JVM自带的类加载器根类加载器(BootStrap)拓展类加载器(Extension)系统(应用)加载器(System/AppClassLoader)开发者自己创建的类加载器java.long.ClassLoader的子类publicabstractclassClassLoader{//抽象类,不能实例化吗,需要继承并重写其方法}2.加载时机类加载器不是在"首次主动"使用的时候采
燕归来兮123
·
2020-07-07 20:08
Java
【
深入理解Java
虚拟机 】类加载器的命名空间以及类的卸载
类加载器的命名空间每个类加载器又有一个命名空间,由其以及其父加载器组成类加载器的命名空间的作用和影响每个类加载器又有一个命名空间,由其以及其父加载器组成在每个类加载器自己的命名空间中不能出现相同类名的类(此处值得是类的全名,包含包名)在不同的类命名空间中,可能会出现多个相同的类名的类如下面的代码示例中,首先定义一个类加载器MyClassLoaderstaticclassMyClassLoadere
燕归来兮123
·
2020-07-07 20:08
Java
【
深入理解Java
虚拟机】类的初始化过程
类的初始化过程类的加载过程.png加载将Class文件以二进制的形式加载到内存中验证校验Class文件是否安全,是否被正确的修改等准备为类变量申请内存,设置默认值,(初始化变量的默认值,比如int初始化为0,reference初始化为null)但是达到类的初始化之前都没有初始化为真正的值。零值.png解析将符号引用转换为直接引用初始化搜集并执行static代码块,以及方法的执行,是静态变量以及st
燕归来兮123
·
2020-07-07 20:07
Java
jvm动态类型语言支持
参考《
深入理解Java
虚拟机》什么是动态类型语言?《
深入理解Java
虚拟机》原文:动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期。
zhicong.zh
·
2020-07-07 16:52
java
优化eclipse启动
前言看了周志明的
深入理解java
虚拟机后,对虚拟机内部运行有了一定的了解,书中有个例子是关于优化eclipse启动速度的,忍不住手痒来尝试下,同时把过程分享给大家。
李小佳
·
2020-07-07 14:12
java相关
eclipse插件开发
读书笔记--
深入理解java
虚拟机--第9章 类加载及执行子系统的案例与实战
第9章类加载及执行子系统的案例与实战目录第9章类加载及执行子系统的案例与实战9.1概述9.2案例分析9.2.1tomcat:正统的类加载器架构9.2.2OSGi:灵活的类加载器架构9.2.3字节码生成技术和动态代理的实现9.2.4Retroranslator:跨越JDK版本9.3实战:自己动手实现远程执行功能9.1概述略。9.2案例分析9.2.1tomcat:正统的类加载器架构主流的javaweb
liyuhui195134
·
2020-07-07 14:08
深入java虚拟机
Java类加载器有几种?什么是双亲委派模型?
——《
深入理解Java
虚拟机》类加载器可以说是Java语言
快乐柠檬
·
2020-07-07 13:42
深入浅出JVM
《
深入理解Java
虚拟机》读书笔记
1.内存模型2.可达分析算法通过一系列GCRoots对象作为起始点,向下搜索形成引用链,以此证明对象是否可用。GCRoots对象:1.虚拟机栈的对象2.方法区的静态变量和常量引用的对象3.Native方法引用的对象ps:在大量使用反射、动态代理、CGLib等ByteCode框架,动态生成JSP以及OSGi这类频繁自定义ClassLoader的场景,需要虚拟机具备类卸载的功能,以保证永久代不会溢出。
乐码
·
2020-07-07 13:01
java虚拟机
读
深入理解Java
虚拟机笔记--类加载机制
已经读到《
深入理解java
虚拟机》第三部分了,感觉开始飘了,太枯燥了这部分,不过还是跟着书上走了一遍,大概了解了其内容,这部分内容主要类文件结构,类加载机制,执行引擎等组成。
浅笑丨无痕
·
2020-07-07 12:34
一个java对象占多少个字节的总结和理解
最近在看《
深入理解Java
虚拟机》和《Java并发编程的艺术》这两本书,里面都设计到了计算对象大小的内容,搞了两天终于弄清楚。首先,参考了这篇文章《一个java对象占多少个字节?》
苏小小016
·
2020-07-07 11:08
java
Android Studio 使用Java8全知全解
这块解释一下,之前看的《
深入理解Java
虚拟机》中讲到,为了更好的支持动态类型语
小s学技术
·
2020-07-07 10:57
Java
Android
构建工具
再有人问你Java内存模型是什么,就把这篇文章发给他。
网上有很多关于Java内存模型的文章,在《
深入理解Java
虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。
Java小铺
·
2020-07-07 10:42
《
深入理解java
虚拟机》阅读笔记
1.运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(JavaSE7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示。运行时数据区域1.1.程序计数器程序计数器(
adison
·
2020-07-07 09:15
深入理解java
虚拟机读书笔记-第二章
第2章Java内存区域与内存溢出异常===============运行时数据区=================================================1.运行时数据区包含:方法区、虚拟机栈、本地方法栈、堆、程序计数器。2.程序计数器是一块较小的内存空间,它可以看做是当前线程执行的字节码的行号指示器。在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行
dxt83378122
·
2020-07-07 07:17
JVM
深入理解java
虚拟机-day1
之前一直打算深入的学习一下java虚拟机,但是苦于公司陆续新产品的研发,导致一直没有抽出时间来深入的学习一下java的虚拟机,最近项目上线完毕,也有了大把时间,所以会集中精力开始研习java虚拟机,并以此为跳板,让自己对程序的开发、对java的理解更上一层楼。一、运行时数据区域。1、程序计数器。程序计数器是一块较小的内存空间,他可以看做是当前线程所执行的字节码的行号指示器。每条线程都需要有一个独立
上天借屁力
·
2020-07-07 07:37
深入理解java虚拟机
大数据学习-Java JVM垃圾回收机制
一、概述:本文作为大数据基础的Java部分,上一篇说明了Linux的常用命令,今天学习了Java的高级特性,我们关注与Java的内存管理的机制,也就是垃圾是如何回收的俗称GC问题,这里用《
深入理解Java
慕久久
·
2020-07-07 06:22
spring源码分析-core.io包里面的类
前些日子看《
深入理解java
web开发》时,看到第一章java的io流,发觉自己对io流真的不是很熟悉。
dianqu8061
·
2020-07-07 06:18
深入理解Java
虚拟机:第二章 Java内存区域与内存溢出异常
深入理解Java
虚拟机:JVM高级特性与最佳实践(第2版)周志明JVM规范让每个Java线程拥有自己的独立的JVM栈,也就是Java方法的调用栈内存区域图:java内存区域图.jpg2.4.2虚拟机栈和本地方法栈溢出由于在
著名的
·
2020-07-07 05:31
深入理解Java
中为什么内部类可以访问外部类的成员
内部类简介虽然Java是一门相对比较简单的编程语言,但是对于初学者,还是有很多东西感觉云里雾里,理解的不是很清晰。内部类就是一个经常让初学者感到迷惑的特性。即使现在我自认为Java学的不错了,但是依然不是很清楚。其中一个疑惑就是为什么内部类对象可以访问外部类对象中的成员(包括成员变量和成员方法)?早就想对内部类这个特性一探究竟了,今天终于抽出时间把它研究了一下。内部类就是定义在一个类内部的类。定义
昨夜星辰_zhangjg
·
2020-07-07 04:24
Java
深入理解Java语言
Java
内部类
访问外部类的成员
字节码反编译
javap
[重磅,建议收藏]JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介
当然,要真正
深入理解Java
的集合实现,还是要推荐去阅读JDK的源码。Java提供的众多集合类由两大接口衍生而来:Collectio
ahubenkui
·
2020-07-07 02:25
java
《
深入理解Java
虚拟机》读书笔记7--运行期优化
记得在大学刚开始学习Java的时候,也许是为了让大家好理解,老师说Java是一门解释执行的语言。但是现在回顾这句话,这种说法可能就不是那么准确了实际上,Java程序在启动最初是通过解释器进行解释执行的,但是当某个方法或者代码运行非常频繁的时候,虚拟机就会把这部分代码视为“热点代码”(HotSpotCode),在运行时将这部分代码编译成平台相关的机器码,并且进行各种层次的优化,以提高热点代码的执行效
虾米_
·
2020-07-07 01:49
JVM
深入理解Java
异常机制
java中的异常处理的目的在于通过使用少量的代码,使得程序有着强大的鲁棒性,并且这种异常处理机制会让你变得非常自信:你的应用中没有你没处理过的错误。处理异常的相关手法看起来是这么的难懂,但是如果掌握的话,会让你的项目收益明显,效果也会是立竿见影。如果我们不使用异常处理,那么我们在程序中必须检查特定的错误,并且在程序的很多地方去处理他,这样会带来低效率和高耦合。这是我们不希望看到的。有了异常处理,我
白日梦幻者
·
2020-07-07 00:39
java基础
深入理解java
script中的继承机制(1)
javascript中的继承机制是建立在原型的基础上的,所以必须先对原型有深刻的理解,笔者在之前已经写过关于js原型的文章。我们都知道,每个函数function都会有一个属性,这个属性就是原型prototype,它是一个引用,它指向一个对象object。当我们使用new操作符调用构造函数,创建一个新对象的时候,这个新对象就会拥有一个指向它的构造函数的原型对象的神秘链接,在浏览器中一般是proto,
六尺帐篷
·
2020-07-06 22:07
深入理解Java
反射机制(1)---应用篇
文章目录0.引言1.什么是Java反射2.认识class对象2.java反射的典型使用2.1根据类名创建对象2.2获取成员变量并使用2.3获取成员方法并调用0.引言 在实际的Android开发中,很少接触发射。最近使用MVVM重构MapToolapp,view和viewModel通过泛型实现动态绑定并在base类中完成一些共有的初始化逻辑,由于base类在编译期并不确定泛型,所以无法按照常规的n
csdn_SUSAN
·
2020-07-06 21:14
android
java
整理内容
推荐播客zejian的博客JAVA一、枚举enum入门级:Java枚举(enum)详解7种常见的用法大神级:
深入理解Java
枚举类型(enum)二、线程线程安全的标准–>synochrizedJava多线程之深入理解
自古红蓝出CP
·
2020-07-06 21:31
java
深入理解java
虚拟机(十三) Java 即时编译器JIT机制以及编译优化
在部分的商用虚拟机中,Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,即时编译器(JustInTimeCompiler)会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化。1、HotSpot内的即时编译器解释器和编译器各有各的优点:解释器优点:
张小琦
·
2020-07-06 20:45
Java
虚拟机
深入理解Java虚拟机
深入理解java
范型
1、要理解java编译和解释执行的过程。在各过程中,范型的存在性、存在方式、被处理方式。2、编译器编译源代码时,会检查范型,防止类型出错。例如:Listusernames=newArrayList();将不能通过编译。它将源代码编译为字节码,这时候的字节码,与没有使用范型编译过来的字节码比较,多出了一些范型信息。但是这些范型信息的有无,对于JVM是一样的(如果不考虑反射)。Listusername
the-13th-floor
·
2020-07-06 20:27
java
深入理解Java
虚拟机——程序编译与代码优化
一早期(编译期)优化1概述Java语言的“编译期”是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,justintimecompiler)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器,aheadoftimecompiler)直接把*
瑛民星
·
2020-07-06 20:59
书籍笔记
Java
深入理解java
---反射篇
深入理解java
---反射篇背景在Java中如果我们预先不知道一个对象的确切类型,RTTI可以告诉你,但是有一个限制,那就是在编译的时候这个对象类型必须是确定的(需要有一个确定的编译类型),这样我们才能使用
yinbingqiu
·
2020-07-06 20:28
Java
深入理解Java
虚拟机(程序编译与代码优化)
文章首发于微信公众号:BaronTalk,欢迎关注!对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化。本文就从虚拟机层面来看看虚拟机对我们所编写的代码采用了哪些优化手段。一.早期优化(编译期优化)Java语言的「编译期」其实是一段「不确定」的操作过程。因为它可能是一个前端编译器(如Javac)把*.java文
weixin_30387339
·
2020-07-06 19:56
深入理解java
泛型
转自:java泛型小问题参考问题:MethodinthetypeMapisnotapplicableJavaSUN数据结构Eclipse编程几年前当Java5还未正式发布的时候,看到过一些人写的介绍Tiger中的新特性,当时对我第一感觉冲击最大的就是泛型(generics)和注释(annotation),因为它们直接影响了我们编码的语法习惯。在后来的使用过程中,对于泛型一直没有特别深入的使用过,没
okyoung188
·
2020-07-06 17:16
java
Java编程思想之范型(1)
范型是在Java5.0(1.5)版本中提出的,虽然Oracle已经发布了Java1.9,Java12的feature也已经在讨论中,但对于很多程序员来讲,对范型的理解和运用并不好,接下来的系列文章带大家一起
深入理解
明月撒
·
2020-07-06 16:05
Java技术
深入理解Java
虚拟机读书笔记-java编译期和运行期优化
编译期优化解析和填充符号表1.词法、语法分析词法分析是将源代码的字符流转变为标记(Token)集合,单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为标记。Token不可再拆分。语法分析是根据Token序列构造抽象语法树的过程,抽象语法树(AbstractSyntaxTree,AST)是一种用来描述程序代码语法结构的树形表示方式,语法树的每一个
啊浪的博客
·
2020-07-06 16:05
Java
源码分析与实战——
深入理解Java
的4种线程池
大家都知道,Java一共提供了4种线程池,通过Executors类的4个静态方法可以获得实例:Executors.newSingleThreadExecutor()Executors.newFixedThreadPool()Executors.newCachedThreadPool()Executors.newScheduledThreadPool本文将通过源码分析和实例演示的方式来引导大家去了解
zzmlake
·
2020-07-06 14:55
java
源码分析与实战——深入理解ScheduledThreadPool线程池延时执行机制(一)
1、前言在上篇博客《源码分析与实战——
深入理解Java
的4种线程池》中,我们详细分析了一下Java四种线程池的基本源码,编写代码进行了尝试。
zzmlake
·
2020-07-06 14:23
java
深入理解Java
Script箭头函数
箭头函数就是个简写形式的函数表达式,并且它拥有词法作用域的this值(即不会新产生自己作用域下的this,arguments,super和new.target等对象)。此外,箭头函数总是匿名的。语法基础语法(param1,param2,…,paramN)=>{statements}(param1,param2,…,paramN)=>expression//equivalentto:=>{retur
倾城一笑stu
·
2020-07-06 13:51
JS/JQ/AJAX
类加载和对象的初始化过程
本文主要是探索和分析类的加载过程及对象的实例化过程,主要参考《java编程思想》和《
深入理解java
虚拟机》,文章有错误之处还希望大家批评
入境繁华
·
2020-07-06 13:43
Java
学习《美团技术
深入理解Java
ScriptCore 》笔记
了解WebKit我们每天都会接触浏览器,使用浏览器进行工作、娱乐。让浏览器能够正常工作最核心的部分就是浏览器的内核,每个浏览器都有自己的内核,Safari的内核就是WebKit。图片.png在上面的WebKit组成图中,我们可以发现只有WebCore是红色的。这是因为时至今日,WebKit已经有很多的分支以及各大厂家也进行了很多优化改造,唯独WebCore这个部分是所有WebKit共享的。是整个W
JM_Seven
·
2020-07-06 13:56
深入理解Java
Bean(2):属性编辑器PropertyEditor
在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值。BeanWrapper填充Bean属性时如何将这个字面值转换为对应的double或int等内部类型呢?我们可以隐约地感觉到一定有一个转换器在其中起作用,这个转换器就是属性编辑器。“属性编辑器”这个名字可能会让人误以为是一个带用户界面的输入器,其
Dave888Zhou
·
2020-07-06 12:09
Java&Java企业级架构
切面日志
一、注解:
深入理解JAVA
注解要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。
迟到的二货
·
2020-07-06 12:47
spring
boot
周志明:职业电竞选手的Java大神路
热爱决定必然可能大家认识我都是从《
深入理解Java
阿里云云栖号
·
2020-07-06 11:26
我是程序员
上一页
44
45
46
47
48
49
50
51
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他