相关推荐
-
JVM类装载器详解
JVM类装载器详解
-
JVM类装载器机制
加载:查找并加载类全限定名的二进制字节流,转为方法区数据结构(特殊的堆),在Java堆中生成对应的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 注意:对于数组类,情况就有所不同,数组类本身不...
-
java类验证和装载顺序_一张图看懂JVM之类装载系统
原标题:一张图看懂JVM之类装载系统 导读在之前的文章中,我们通过一张图的方式(图????)整体上了解了JVM的结构,并重点讲解了JVM的内存结构、内存回收算法及回收器方面的知识。收到了不少读者朋友们的反馈和指正,在...
-
JVM类加载器(类装载子系统)
加载:通过类的全限定名获取此类的字节流,将流代表的静态存储结构转化为方法区(作为一个内存区域,jdk1.7以前永久代,1.8之后元空间)的运行时数据结构,在内存中生成一个代表该类的java.lang.class对象,作为方法区这个类...
-
JVM之类装载子系统
如果一个类是用户类加载器加载的,JVM会将类加载器的引用作为类的一部分信息保存在方法区当中,当解析一个类型到另一个类型引用的时候,JVM则必须保证两个类加载器是相同的。(动态链接) JVM中对类的使用分为主动和...
-
JVM系列之三:类装载器子系统
虚拟机类装载器子系统:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类的加载指的是将类的.class文件中的二进制数据读入到...
-
JVM类加载器子系统
JVM Class Loader SubSystem概述类加载的过程加载阶段(Loading)链接阶段(Linking)初始化阶段(Initialization)3种类加载器& 自定义加载器获取 ClassLoader的4种方式自定义类加载器(User Defined ClassLoader)双亲...
-
JVM学习笔记02-类加载器子系统
1、类加载器子系统的作用 2、类加载器ClassLoader角色 3、类的加载过程 3.1、加载 3.2、链接 4、类加载器的分类 4.1、引导类加载器(Bootstrap ClassLoader) 4.2、扩展类加载器(Extension Class Loader) ...
-
JVM(二)类装载子系统
类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine(执行引擎)决定。 加载的类信息存放于...
-
JVM—类加载子系统
类加载器执行引擎在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?隔离加载类修改类加载的方式...
-
JVM类加载子系统
类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine(执行引擎)决定。 加载的类信息存放于...
-
[JVM]超详细JVM系列文(1):整体结构+类加载子系统+运行时数据区—程序计数器、栈(多图长文)
按照Java代码执行的流程,从类装载器子系统出发,剖析其各个子模块的结构与功能。结合Java语言中的相关设计思路(变量的初始化、存储;对象的生命周期、方法的调用)、OOP(继承、多态),在JVM进行追根溯源,解释其...
-
JVM一:类加载器子系统
类加载器子系统(ClassLoader):将class字节码文件加载到JVM内存中,是否会执行该字节码文件由 执行引擎决定。 类加载器子系统(Class loader subSystem)只负责将class文件加载进内存中,并且类在仅需要时加载,...
-
【JVM】VM是什么?JVM是什么?JVM作用是什么?JVM特点?JVM位置?JVM组成?
1、类加载子系统类加载的角色?类加载的过程?① 加载 Loading② 链接 Linking③ 初始化 Initialization类什么时候初始化?类的初始化顺序?类加载器分类?双亲委派机制是什么?双亲委派的优点?类的主动使用/被动...
-
JVM第二章-类加载子系统
类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 加载
-
JVM-类加载子系统
System . out . println("你的大恩大德,我下辈子再报!");} }它的加载过程是怎么样的呢?...完成后调用 HelloLoader 类中的静态方法 main加载失败则抛出异常完整流程JVM严格来讲支持两种类型的类加载器。...
-
JVM总结之类加载子系统
一个类的完整生命周期如下 类加载过程 Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢? 系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又...
-
JVM系列之类加载子系统
1、类加载器与类的加载过程 1.1、类加载器 1.1.1、类加载器子系统的作用 负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识,魔术,CA FA BA BE Classloader只负责class文件的加载,...
-
4. JVM-类加载子系统
类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 加载的类信息存放于一块称为...
-
【JVM】类加载子系统
一,内存结构 二,类加载器及类加载过程 三,类加载器的分类 四,ClassLoader的常用方法及获取方式 五,双亲委派机制 六,其他
35 楼 if(i!=我){} 2012-11-21 10:34
对的,我觉得注释的重要性远大于代码,毕竟你不能保证你写的代码以后的效率依然是最高。大家都让别人方便,自然维护就方便了。
笑话!注释的重要性大于代码?还远大于?还有上上一层的“3000多行的代码”,更是个笑话!
之前接过一个做一半的项目,最大一个类2000多行、一个方法300多行,各种标识,各种重复。最后业务层我删了1/2代码,而且完成了更多的功能。没怎么加注释,但没人敢说他看不懂。
永远记住一句话:设计大于实现,规则大于编码——远大于!
是吗?估计你那个类里边只是一些简单的业务逻辑处理吧,如果你要写一个框架或者抽取一些公用的模块出来,或者说你编写的代码移交给新手,请问你的代码该怎么来维护呢?写代码一直都要养成一个好的习惯,不管是写注释还是设计。况且在《重构》中提到,好的代码在一个方法中不应该超过50行代码。
批量更新采集数据:生产库中有重复的(重复2-8次,不定)、有信息不全的、有中间库有的生产库没有的、有生产库中有中间库没有的;修改时牵涉1张表,新增时牵涉4张表,要求返回统计信息、做好中间库标记。
这个业务还可以吧?告诉我,你准备用几个方法?
34 楼 kidneyball 2012-11-21 10:18
对的,我觉得注释的重要性远大于代码,毕竟你不能保证你写的代码以后的效率依然是最高。大家都让别人方便,自然维护就方便了。
笑话!注释的重要性大于代码?还远大于?还有上上一层的“3000多行的代码”,更是个笑话!
之前接过一个做一半的项目,最大一个类2000多行、一个方法300多行,各种标识,各种重复。最后业务层我删了1/2代码,而且完成了更多的功能。没怎么加注释,但没人敢说他看不懂。
永远记住一句话:设计大于实现,规则大于编码——远大于!
是吗?估计你那个类里边只是一些简单的业务逻辑处理吧,如果你要写一个框架或者抽取一些公用的模块出来,或者说你编写的代码移交给新手,请问你的代码该怎么来维护呢?写代码一直都要养成一个好的习惯,不管是写注释还是设计。况且在《重构》中提到,好的代码在一个方法中不应该超过50行代码。
新手喜欢注释是因为:1. 注释比程序容易看(自然语言,多亲切);2.自以为如果因为注释出错导致自己浪费时间,不关他事(虽然通常顶头上司不会这样看)。 新手最喜欢干的事情,就是把一整个方法连同注释从这里复制到那里,然后把方法名字改掉,把方法里四分三的代码改掉,注释一个字都不动。
33 楼 z276356445t 2012-11-21 09:56
对的,我觉得注释的重要性远大于代码,毕竟你不能保证你写的代码以后的效率依然是最高。大家都让别人方便,自然维护就方便了。
笑话!注释的重要性大于代码?还远大于?还有上上一层的“3000多行的代码”,更是个笑话!
之前接过一个做一半的项目,最大一个类2000多行、一个方法300多行,各种标识,各种重复。最后业务层我删了1/2代码,而且完成了更多的功能。没怎么加注释,但没人敢说他看不懂。
永远记住一句话:设计大于实现,规则大于编码——远大于!
是吗?估计你那个类里边只是一些简单的业务逻辑处理吧,如果你要写一个框架或者抽取一些公用的模块出来,或者说你编写的代码移交给新手,请问你的代码该怎么来维护呢?写代码一直都要养成一个好的习惯,不管是写注释还是设计。况且在《重构》中提到,好的代码在一个方法中不应该超过50行代码。
32 楼 ray_linn 2012-11-21 09:54
31 楼 if(i!=我){} 2012-11-21 09:33
对的,我觉得注释的重要性远大于代码,毕竟你不能保证你写的代码以后的效率依然是最高。大家都让别人方便,自然维护就方便了。
笑话!注释的重要性大于代码?还远大于?还有上上一层的“3000多行的代码”,更是个笑话!
之前接过一个做一半的项目,最大一个类2000多行、一个方法300多行,各种标识,各种重复。最后业务层我删了1/2代码,而且完成了更多的功能。没怎么加注释,但没人敢说他看不懂。
永远记住一句话:设计大于实现,规则大于编码——远大于!
30 楼 kidneyball 2012-11-21 09:25
1. TODO和FIXME
2. 在一些非常规的做法上说明为什么没有采用常规做法(以防后面忘了原因,又改回常规方法了)
3. 在临时注释掉的代码之前说明为什么要注释掉
其他在主线流程上的注释,看了不如不看。
有人说,那我想说明某段代码对应哪个业务需求怎么办。正确做法是,每次只提交跟某个业务需求相关的修改,认真写好提交信息,这样从版本控制的Annotation上就能清清楚楚看到每一行代码时对应哪个需求的。
29 楼 qq672076266 2012-11-21 09:17
28 楼 kidneyball 2012-11-21 08:40
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
这是要干什么啊?几千行的类?COBOL吗?
需要几千行吗?假设有一段50行的代码,如果根据注释发现这段代码跟你需要解决的问题无关,你就完全可以跳过,这样你每次看代码都可以节省时间。
解决问题的时候,如果操作得当(由异常位置反推),怎么会跑到无关的地方去。如果你跟着逻辑链跑到一个类里,一看注释,嗯,跟要解决的问题无关,不看。查了一天发现问题就在这里,再排查半天,某人跟你道个谦:哦,不好意思,改了程序忘了改注释。你找谁哭去。
27 楼 ewth126 2012-11-20 23:12
对的,我觉得注释的重要性远大于代码,毕竟你不能保证你写的代码以后的效率依然是最高。大家都让别人方便,自然维护就方便了。
26 楼 wxyzyu 2012-11-20 22:07
25 楼 wxyzyu 2012-11-20 22:04
24 楼 ewth126 2012-11-20 15:19
23 楼 wlxlz 2012-11-20 13:43
22 楼 nail2008 2012-11-20 13:39
个人认为业务场景还要要说明的。
而且这篇明显就是老外写的,英语是人家的母语,我们很多程序员命名都是金山词霸出来了,词不达意,或者歧义的情况时有发生,该写注释的时候还是要写的。
21 楼 phk070832 2012-11-20 13:10
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
这是要干什么啊?几千行的类?COBOL吗?
需要几千行吗?假设有一段50行的代码,如果根据注释发现这段代码跟你需要解决的问题无关,你就完全可以跳过,这样你每次看代码都可以节省时间。
20 楼 小鱼不爱水 2012-11-20 12:56
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
这是要干什么啊?几千行的类?COBOL吗?
19 楼 phk070832 2012-11-20 12:20
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
个人认同优秀的程序不需要注释,如果代码沦落到需要注释了,说明有极大地改善空间;正如你看一本故事会,还还翻字典才懂故事说的是啥,这样的故事估计不是好故事。
优秀的程序绝对需要注释:
1.有注释的代码看起来决定不会比没注释的代码慢(如果你觉得不是这样,那你完全可以忽略注释,这样也就符合我这个理由)
2.我觉得lz对注释的理解太狭隘了,注释不只是名词解释或者语法解释,还可以是逻辑实现概况,如某一段代码干了什么,某个方法干了什么...,这样在找代码时可以跳过很多无关的代码;而且你完全可以把你写代码时的思想、可以进一步进行改进的想法以及需要注意的方面写到注释里;......
18 楼 qianhd 2012-11-20 11:50
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
那只能说没多少程序员是正常的.
17 楼 少城SC 2012-11-20 11:23
16 楼 Mybeautiful 2012-11-20 11:03
恰恰相反
我非常认同“优秀的程序不需要加以说明;糟糕的程序需要大量注释。”
如果一段代码:
变量命名规范
方法名见名知意
方法粒度合适(功能专一、健壮)
格式化良好
我认为是不需要注释的,至少在方法内部是不需要注释的。除非读者的英语水平很差、或者没学过编程。
您说得内几点, 是个正常点的程序员都做得到. 注释的目的是让人家看懂整个过程中如何处理或实现复杂的业务逻辑.
个人认同优秀的程序不需要注释,如果代码沦落到需要注释了,说明有极大地改善空间;正如你看一本故事会,还还翻字典才懂故事说的是啥,这样的故事估计不是好故事。