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
对象复制
一、图示二、MapStructpom文件junitjunit4.12org.projectlomboklombok1.18.16commons-beanutilscommons-beanutils1.9.4org.mapstructmapstruct1.2.0.Finalorg.mapstructmapstruct-jdk81.2.0.Finalorg.mapstructmapstruct-pro
·
2021-05-13 18:55
深入理解Java
虚拟机(二)类的加载过程
本篇文章主要介绍一下虚拟机是如何进行类加载的以及进行类加载的加载器的工作原理。一、类加载过程Java的类加载过程分为三个主要步骤:加载、链接、初始化。图11.加载将class二进制文件加载到内存中,通过一个类的全限定名来获取定义此类的二进制字节流。在加载过程中虚拟机将字节流所代表的静态存储结构转化为方法区的运行时数据结构。在java堆中生成一个代表这个类的java.lang.Class对象,做为方
yfsheng
·
2021-05-13 13:47
Windows 10 + WSL(ubuntu 20.04) + CLion 编译JDK12
1.编译JDK参考:《
深入理解Java
虚拟机(第三版)》ubuntu20.04.2环境下openjdk12源码编译相关问题Tips&Tricks:DevelopOpenJDKinCLionwithPleasure
砖头23333
·
2021-05-12 17:43
笔记
java
jdk
wsl
CLion
深入理解java
虚拟机(一)
Java程序员除了需要写基本的业务代码外,服务性能调优的能力也是一个很重要的能力。谈到性能调优不得不让人首先想到的就是java虚拟机(JVM)相关的问题了。下面将会分几个专题介绍一下jvm相关的理论知识。一、JVM内存模型在Java中,JVM内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈。图1JVM内存模型1.堆(JavaHeap)对于java应用程序来说,Java堆是虚拟机所管理的
yfsheng
·
2021-05-12 16:12
学弟学妹们,如果你想吃透 Java字节码的话,看这篇就好了!(超级硬核,建议收藏)
不知道大家有没有这种感觉,就是一开始学习编程的时候,真心不想看底层的东西,就想直接上来撸代码,但时间久了以后,总感觉缺点啥~~~~于是我开始阅读《深入理解计算机系统》、《图解TCP/IP》、《
深入理解Java
沉默王二
·
2021-05-12 15:08
趣学Java
反编译
编程语言
java
jvm
jdk
BiBi - JVM -10- 虚拟机字节码
From:
深入理解Java
虚拟机目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-05-11 18:52
深入理解java
虚拟机读书笔记,第六章:类文件结构
6.1概述计算机只能识别0和1虚拟机以及建立在虚拟机上语言的出现,使编写的程序编译成二进制本地机码(nativecode)非唯一选择,越来越多编程语言选择了与操作系统和机器指令集无关、平台中立的格式作为程序编译后的存储格式6.2无关性的基石虚拟机可以载入和执行同一种平台无关的字节码各种平台不同的虚拟机和各个平台统一使用的程序存储格式-字节码(Bytecode),是平台无关性的基石虚拟机一种中立特性
cremin
·
2021-05-11 18:08
深入理解java
泛型Generic
1.背景泛型技术诞生之前(JDK5以前),创建集合的类型都是Object类型的元素,存储内容没有限制,编译时正常,运行时容易出现ClassCastException异常。publicclassTest{publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add("java");list.add(100);list
·
2021-05-11 16:39
深入理解JAVA
虚拟机学习笔记5——垃圾回收算法
话不多说,直接上内容,书中介绍了四种算法。1.标记-清除算法:这是最基础的算法,后续的算法都是在此算法基础上做出的改进。该算法包括两个过程:标记——将对象回收状态进行标记,这个在以前的笔记中已经做了介绍,这里不再赘述。清除——回收的时候直接将标记为可回收的对象清除。缺点:1.1效率问题:标记和清除两个过程的效率都不高;1.2.空间问题:从图中可以看出,回收之后的内存上产生了大量不连续的内存碎片,过
徐可心
·
2021-05-11 10:30
Java内存模型小析
之前看过一次周志明写的《
深入理解Java
虚拟机-JVM高级特性与最佳实践》但是看过之后很多东西就忘了如同失忆了一般,所以这次在看的时候做一个读书笔记,以后也便于复习。
木叶之荣
·
2021-05-11 09:16
Java学习
1.总览2.书籍推荐2.1基础部分
深入理解Java
虚拟机:JVM高级特性与最佳实践(第2版)Java并发编程的艺术Netty权威指南(第2版)2.2应用部分JavaEE开发的颠覆者:SpringBoot
程序不原
·
2021-05-11 01:07
面试必背,
深入理解Java
String
JavaStringJavaString本质上是一个连续的字符数组。创建字符串1.直接String对象赋值创建。Strings1="HelloWorld!";2.使用String类的构造函数创建。Strings2=newString("HelloWorld!");String是单例的(常量)举例说明,如下列结果为true,为什么s1和s3是两个不同的变量为什么会相同呢?这是因为在同一个运行环境下直
兴趣使然的程序猿
·
2021-05-10 23:28
#
1
Java基础篇
字符串
java
深入理解Java
String
Java
String面试
Java
String
深入理解Java
知识中的堆和栈
在Java语言的学习过程中最重要的就是理解好堆和栈,因为java的面向对象特性跟堆和栈的分离密切相关,所以细致深入地理解。1.我不知道有没有人会疑惑,为什么java要把堆和栈分开呢?堆能存储东西,难道栈就不能了吗?在运行的时候不就是把数据放在栈中吗?(1)是的,确实是这样的,正如之前所说的栈是负责运行时的,而堆是负责存储信息的。不知道大家有没有了解设计模式里面的一些原则,其中有一条的为对象之间的松
值得一看的喵
·
2021-05-10 10:52
深入理解JAVA
虚拟机 (二)JVM 垃圾回收器 与内存分配策略
垃圾收集(GarbageCollection,GC)前沿:为什么我们还要去了解GC和内存分配Why:--->当需要排查内存溢出,内存泄漏问题,垃圾收集成为系统达到更高并发的瓶颈,我们就要对于自动化的技术实施必要的监控。GC算法分析(一)如何判断对象已死引用计数法(很可惜java不是这种算法)这种算法判断就是对象有无引用问题/***testGC()方法执行后,objA和objB会不会被GC呢?*@a
Gxgeek
·
2021-05-10 02:36
再见,2017
JVM:通过仔细阅读《
深入理解Java
虚拟机》这本书,对JVM有了一个比较清晰的认识。Java并发:通过《Java并发编程的艺术》,以及JDK中相关部分的源码,对并发也有了一个比较深入的了解Java
AlstonWilliams
·
2021-05-09 09:33
Java内存模型JMM,虚拟机线程实现
文章目录主内存与工作内存内存间交互操作对于volatile型变量的特殊规则线程的实现Java线程的实现Java线程调度Java锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁
深入理解Java
虚拟机:JVM
[1-9]\d*(.\d{1,2})?
·
2021-05-08 22:39
Jvm
java
多线程
牛逼!Java 从入门到精通,超全汇总版
核心技术卷一Java编程思想设计模式HeadFirst设计模式图解设计模式设计模式重学Java设计模式Java进阶Java并发编程实战Java并发编程艺术Java并发编程之美图解Java多线程设计模式JVM
深入理解
程序员cxuan
·
2021-05-06 19:06
Java
后端
计算机
深入理解Java
Script中的语法和代码结构
概述所有编程语言都必须遵守特定的规则才能运行。确定编程语言的正确结构的这组规则称为语法。许多编程语言主要由具有语法变化的类似概念组成。在本教程中,我们将介绍JavaScript语法和代码结构的许多规则和约定。功能性和可读性在开始使用JavaScript时,功能性和可读性是关注语法的两个重要原因。有些语法规则是JavaScript功能所必需的。如果不遵循它们,控制台将抛出一个错误,脚本将停止执行。考
·
2021-05-06 15:10
JVM的gc算法总结
Java虚拟机的内存回收算法面试经常会问到,最近在看《
深入理解Java
虚拟机》一书,对GC算法总算是有了一些粗略的理解。为了避免看完就忘掉的尴尬,在博客整理记录一下。
业松
·
2021-05-06 09:22
Strongly Reachable, SoftReference, WeakReference和PhantomReference简介
导语这个问题之前看过很多遍,其中周志明的《
深入理解Java
虚拟机》里讲的比较好,其他的基本都是三言两语,没讲原理。本文也不讲原理,只记录我认为需要记住的点。
jubincn
·
2021-05-06 03:15
Jvm之用java解析class文件
《
深入理解java
虚拟机》中花了一整个章节来讲解Class文件,可是看完后,一直都还是迷迷糊糊,似懂非懂。
半栈工程师
·
2021-05-05 03:41
深入理解java
script中的原型
原型prototype是javascript中极其重要的概念之一,但也是比较容易引起混淆的地方。我们需要花费一些时间和精力好好理解原型的概念,这对于我们学习javascript是必须的。原型的概念真正理解什么是原型是学习原型理论的关键。很多人在此产生了混淆,没有真正理解,自然后续疑惑更多。首先,我们明确原型是一个对象,其次,最重要的是,**Everyfunctionhasaprototypepro
六尺帐篷
·
2021-05-02 11:42
JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介
当然,要真正
深入理解Java
的集合实现,还是要推荐去阅读JDK的源码。Java提供的众多集合类由两大接口衍生而来:Collecti
Java架构学习者
·
2021-05-02 03:12
《
深入理解Java
虚拟机》-1-Java内存区域与内存溢出异常
《
深入理解Java
虚拟机》这本书,是介绍JVM知识的一本十分难得的书,值得去反复阅读、揣摩、反思。这个系列的文章,是我在阅读这本书的过程中的点滴笔记,如果喜欢,请更多支持原书作者出版的图书。
YaeSuo
·
2021-05-01 03:07
JVM类加载相关————《
深入理解JAVA
虚拟机》
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析3部分统称连接。类加载的时机Java虚拟机规范中并没有进行强制约束什么情况下开始类加载过程中的第一个阶段。但是对于初始化阶段,虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“”初始化“”(而加载、验证、准备自然需要在此之前开始)。遇到new、getstat
我是伏地魔
·
2021-05-01 03:38
《
深入理解Java
虚拟机》读书笔记之——判断对象存活的方法
1.1引用计数算法基本思想:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能再被使用的。优点:引用计数算法的实现简单,判定效率也很高,在大部分情况下它都是一个不错的选择。缺点:Java虚拟机并没有选择这种算法来进行垃圾回收,主要原因是它很难解决对象之间的相互循环引用问题。1.2可达性分析算法基本思想:通过一系列的称为
湾湾_a434
·
2021-04-30 22:00
深入理解JAVA
虚拟机学习笔记1——内存
Java虚拟机在执行Java程序的过程中会在内存空间中分配出一块区域,用于程序的运行。虚拟机又会把这块所管理的内存划分为若干个不同的数据区域:虚拟机栈,本地方法区,程序计数器,堆,方法区。左侧三个为线程私有,右侧两个为线程共享的区域。1.程序计数器:当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复
徐可心
·
2021-04-30 13:52
Hadoop与JAVA交互
深入理解Java
:SimpleDateFormat安全的时间格式化Java.util.Calendar.g
司小幽
·
2021-04-30 09:11
深入理解Java
虚拟机之类文件结构
什么是JVM的“无关性”?Java具有平台无关性,也就是任何操作系统都能运行Java代码。之所以能实现这一点,是因为Java运行在Java虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),因此Java能实现“一次编写,处处运行”。而JVM不仅具有平台无关性,还具有语言无关性。平台无关性是指任何操作系统都能运行Java代码,而
Steven1997
·
2021-04-30 05:06
记第一次电话面试
所以我就放下手里的《
深入理解Java
虚拟机》,抄起一本草稿本就冲进了一间会议室。面试官:你好,首先先做一下自我介绍吧。我:好!@#¥%…
无聊夫斯基
·
2021-04-29 03:19
Java虚拟机(二):Java虚拟机运行时数据区域
推荐《
深入理解Java
虚拟机(第二版)》---周志明著学习JVM。进程和线程学习JVM前要了解进程和线程的概念。以下是一个类比,来自阮一峰---进程与线程的一个简单解释。计算机的CPU是
DeppWang
·
2021-04-29 01:59
《
深入理解Java
虚拟机-JVM高级特性与最佳实践(第三版)》学习日记二
Java内存区域与内存溢出异常1.虚拟机自动管理机制Java虚拟机自动管理机制,新建对象的维护回收由虚拟机自动完成不容易出现内存泄漏和内存溢出问题一旦出现内存泄漏和溢出,不了解虚拟机内存使用,很难排查修正错误C/C++人为管理内存,需要手动创建和维护对象2.运行时数据区域定义:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域特点:这些区域有各自的用途,以及创建和
eleven_Chen
·
2021-04-28 08:23
深入理解java
接口和抽象类
抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstractvoidfun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。publicabstractclassCla
Codergao
·
2021-04-27 21:48
WPS金山笔试
浏览器渲染页面过程解析HTML文档、构建DOM树、下载资源、构建CSSOM树、执行js脚本参考在不确定div2大小的情况下实现div2上下左右居中flex布局和transform实现两种方法js实现一个单例模式
深入理解
Gopal1
·
2021-04-27 20:48
《
深入理解Java
虚拟机》笔记之类文件结构与类加载机制
文章作为《
深入理解Java
虚拟机》读书笔记,讲的可能就没书本详细。
Hohohong
·
2021-04-27 15:12
深入理解Java
Script执行上下文和执行栈
前言如果你是一名JavaScript开发者,或者想要成为一名JavaScript开发者,那么你必须知道JavaScript程序内部的执行机制。执行上下文和执行栈是JavaScript中关键概念之一,是JavaScript难点之一。理解执行上下文和执行栈同样有助于理解其他的JavaScript概念如提升机制、作用域和闭包等。本文尽可能用通俗易懂的方式来介绍这些概念。想阅读更多优质文章请猛戳GitHu
浪里行舟
·
2021-04-27 05:22
深入理解Java
虚拟机-如何利用VisualVM对高并发项目进行性能分析
Java虚拟机深入理解系列全部文章更新中...
深入理解Java
虚拟机-Java内存区域透彻分析
深入理解Java
虚拟机-常用vm参数分析
深入理解Java
虚拟机-JVM内存分配与回收策略原理,从此告别JVM
欧阳思海
·
2021-04-26 06:55
深入理解Java
虚拟机(二)
垃圾收集器与内存分配策略Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。1.概述GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?2.对象已死吗1.引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。客观地说,引用计数
NoSuchElementEx
·
2021-04-25 23:06
深入理解Java
虚拟机-Java内存区域透彻分析
Java虚拟机深入理解系列全部文章更新中...
深入理解Java
虚拟机-Java内存区域透彻分析
深入理解Java
虚拟机-常用vm参数分析
深入理解Java
虚拟机-JVM内存分配与回收策略原理,从此告别JVM
欧阳思海
·
2021-04-25 09:48
Android学习整理 - 17- RxJava学习之路
一首先你要先去了解JAVAlambda表达式当然lambda也可以不学,不过要是想走上人生癫峰,迎娶白富美的话,建议就不要跳过
深入理解Java
8Lambda(语言篇——lambda,方法引用,目标类型和默认方法
minminaya
·
2021-04-25 04:45
深入理解Java
8 Lambda表达式
一、Lambda表达式是什么?Lambda表达式有两个特点:一是匿名函数;二是可传递。匿名函数的应用场景是:通常在需要一个函数,但又不想费神去命名一个函数的场合下使用。Lambda表达式所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就去重新定义一个函数了。可传递的应用场景是:就是将Lambda表达式作为参数传递给其他函数,Lambda表达式作为一种更紧凑的代码风格,使Java的语言表达能
Java大生
·
2021-04-24 13:35
破解class文件的第一步:
深入理解JAVA
Class文件
本文分享自华为云社区《java之深入class文件》,原文作者:技术火炬手。java语言是跨平台的,所谓一次编写,到处运行。之所以是跨平台的,就是java定义了一套与操作系统,硬件无关的字节码格式,这个字节码就是用javaclass文件来表示的,javaclass文件内部定义了虚拟机可以识别的字节码格式,这个格式是平台无关性的,在linux系统或者在windows系统上都是一致的。这个就好比htm
华为云
·
2021-04-23 10:16
技术交流
程序员
java
class
文件
索引
jvm
《
深入理解Java
虚拟机》三:垃圾收集器与内存分配策略
本章的主要问题是:哪些内存需要回收?什么时候回收?如何回收?大纲垃圾收集器与内存分配策略哪些内存需要回收?Java堆:这部分内存的分配和回收都是动态的,只有在成员运行时才知道要创建哪些对象,因此,垃圾收集器主要所关注需要回收的就是这部分的内存;Java运行时的其他数据区域,如程序计数器,虚拟机栈,本地方法栈个区域随线程而生,随线程而灭,不需要过多考虑回收的问题;方法区也有回收,只是相比Java堆”
亦猿非猿
·
2021-04-22 13:13
《
深入理解Java
虚拟机》笔记
在C里面我们想执行一段自己编写的机器指令的方法大概如下:typedefvoid(*FUNC)(int);char*str="yourcode";FUNCf=(FUNC)str;(*f)(0);也就是说,我们完全可以做一个工具,从一个文件中读入指令,然后将这些指令运行起来。上面代码中“编好的机器指令”当然指的是能在CPU上运行的,如果这里我还实现了一个翻译机器:从自己定义的格式指令翻译到CPU指令,
Admin_2c24
·
2021-04-22 02:30
《
深入理解Java
虚拟机-JVM高级特性与最佳实践(第三版)》学习日记三
Java内存区域与内存溢出异常4.OutOfMemoryError异常Java堆溢出溢出异常测试思路:Java堆用于储存对象实例,只要不断地创建对象,并且保证GCRoots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会产生内存溢出异常。代码publicclassHeapOOM{staticclassOMMObject{}publicst
eleven_Chen
·
2021-04-20 09:31
并发编程之synchronized深入理解
前言并发编程从操作系统底层工作的整体认识开始
深入理解Java
内存模型(JMM)及volatile关键字深入理解CPU缓存一致性协议(MESI)在并发编程中存在线程安全问题,主要原因有:1.存在共享数据2
一角钱技术
·
2021-04-19 19:59
JVM与Java的体系结构基础认识
官方规范下载与参考书官网规范下载书籍推荐《
深入理解Java
虚拟机》跨平台的语言(JAVA)与跨语言的平台(
Jektong
·
2021-04-19 14:05
JVM学习篇章
java
jvm
《
深入理解Java
虚拟机》笔记--Java内存模型与线程
1.硬件的效率一致性基于高速缓存的存储交互很好的解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高的复杂度,因为它引入了一个新的问题:缓存一致性在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存,当多个处理器的运算任务都设计到同一块主内存区域时,将可能导致各自的缓存数据不一致除了增加高速缓存之外,为了使得处理器内部的运算单元能尽量被充分利用,处理器可能会对输入代码进行乱序
Android_17
·
2021-04-19 01:26
深入理解Java
并发编程之Synchronized关键字实现原理剖析
引言Synchronized关键字(互斥锁)原理,一线大厂不变的面试题,同时也是理解Java并发编程必不可少的一环!其中覆盖的知识面很多,需要理解的点也很多,本文是以相关书籍和结合自己的个人理解从基础的应用范围到底层深入剖析的方式进行阐述,如果错误或疑问欢迎各位看官评论区留言纠正,谢谢!一、Synchronized应用方式及锁类型众所周知,在项目开发过程中使用多线程的效果就是一个字:快!多线程编程
竹子爱熊猫
·
2021-04-18 19:38
阿里腾讯高频Android面试题;JVM虚拟机原理深入解析
其实周志明的《
深入理解Java
虚拟机》就有回答:Dakvik并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能执行Java的cla
蓝斯_867
·
2021-04-18 18:30
上一页
18
19
20
21
22
23
24
25
下一页
按字母分类:
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
其他