- 浏览: 4937153 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
public class T2{ static{ System.out.println("-----.static---"); } static T2 t2 = new T2(); C t =new C(); static String str = "ff"; public T2(){System.out.println("-----...");} public static void main(String[] ages){ String a = "hi"; String s = "'"+a+"'"; String ni= T2.str; } } class C{ static{System.out.println("----cccccc static-...");} }
这个是test类。下面是字节码
{ static T2 t2; C t; static java.lang.String str; public T2();<init>将相应的变量压入<init>方法中 Code: Stack=3, Locals=1, Args_size=1 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: aload_0 5: new #2; //class C 8: dup 9: invokespecial #3; //Method C."<init>":()V 12: putfield #4; //Field t:LC; 15: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream; 18: ldc #6; //String -----... 20: invokevirtual #7; //Method java/io/PrintStream.println:(Ljava/lang/Str ing;)V 23: return LineNumberTable: line 11: 0 line 8: 4 line 11: 15 public static void main(java.lang.String[]); Code: Stack=2, Locals=4, Args_size=1 0: ldc #8; //String hi 2: astore_1 3: new #9; //class java/lang/StringBuilder 6: dup 7: invokespecial #10; //Method java/lang/StringBuilder."<init>":()V 10: ldc #11; //String ' 12: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 15: aload_1 16: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 19: ldc #11; //String ' 21: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 24: invokevirtual #13; //Method java/lang/StringBuilder.toString:()Ljava/l ang/String; 27: astore_2 28: getstatic #14; //Field str:Ljava/lang/String; 31: astore_3 32: return LineNumberTable: line 13: 0 line 14: 3 line 15: 28 line 16: 32 static {}; Code: Stack=2, Locals=0, Args_size=0 0: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #15; //String -----.static--- 5: invokevirtual #7; //Method java/io/PrintStream.println:(Ljava/lang/Str ing;)V 8: new #16; //class T2 11: dup 12: invokespecial #17; //Method "<init>":()V//调了T2<init>方法 15: putstatic #18; //Field t2:LT2; 18: ldc #19; //String ff 20: putstatic #14; //Field str:Ljava/lang/String; 23: return LineNumberTable: line 5: 0 line 7: 8 line 9: 18 } 没注释static T2 t2 = new T2();//调了T2<init>方法 结果:-----.static--- ----cccccc static-... -----... { C t; static java.lang.String str; public T2();<init>将相应的变量压入<init>方法中 Code: Stack=3, Locals=1, Args_size=1 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: aload_0 5: new #2; //class C 8: dup 9: invokespecial #3; //Method C."<init>":()V 12: putfield #4; //Field t:LC; 15: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream; 18: ldc #6; //String -----... 20: invokevirtual #7; //Method java/io/PrintStream.println:(Ljava/lang/Str ing;)V 23: return LineNumberTable: line 11: 0 line 8: 4 line 11: 15 public static void main(java.lang.String[]); Code: Stack=2, Locals=4, Args_size=1 0: ldc #8; //String hi 2: astore_1 3: new #9; //class java/lang/StringBuilder 6: dup 7: invokespecial #10; //Method java/lang/StringBuilder."<init>":()V 10: ldc #11; //String ' 12: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 15: aload_1 16: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 19: ldc #11; //String ' 21: invokevirtual #12; //Method java/lang/StringBuilder.append:(Ljava/lang /String;)Ljava/lang/StringBuilder; 24: invokevirtual #13; //Method java/lang/StringBuilder.toString:()Ljava/l ang/String; 27: astore_2 28: getstatic #14; //Field str:Ljava/lang/String; 31: astore_3 32: return LineNumberTable: line 13: 0 line 14: 3 line 15: 28 line 16: 32 static {}; Code: Stack=2, Locals=0, Args_size=0 0: getstatic #5; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #15; //String -----.static--- 5: invokevirtual #7; //Method java/io/PrintStream.println:(Ljava/lang/Str ing;)V 8: ldc #16; //String ff 10: putstatic #14; //Field str:Ljava/lang/String; 13: return LineNumberTable: line 5: 0 line 9: 8 } 注释static T2 t2 = new T2(); 没有t2的<init>方法 结果:-----.static---
总结:当一个类初始化的时候,先调用<cinit>方法 ,如果在<cinit>方法中遇到<init>方法。则先调用完<init>方法。然后在继续执行<cinit>
发表评论
-
Kryo 使用指南
2017-12-05 20:14 18881、Kryo 的简介 Kryo 是一个快速序列化/ ... -
spring session序列化问题排查
2017-12-01 19:07 6159严重: Servlet.service() for ser ... -
利用junit对springMVC的Controller进行测试
2017-11-30 16:26 1402平时对junit测试service/D ... -
Java内存模型之重排序
2017-11-29 09:44 820在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重 ... -
pmd spotbugs 文档
2017-11-28 10:02 0https://pmd.github.io/pmd/pmd ... -
PMD、FindBug、checkstyle、sonar这些代码检查工具的区别?各自的侧重点是什么?
2017-11-28 10:01 2098可以说都是代码静态分析工具,但侧重点不同。pmd:基于源代码 ... -
阿里巴巴Java代码规约插件p3c-pmd使用指南与实现解析
2017-11-23 17:09 1535阿里巴巴Java代码规约插件安装 阿里Java代码规 ... -
静态分析工具PMD使用说明 (文章来源: Java Eye)
2017-11-23 17:07 1105质量是衡量一个软件是否成功的关键要素。而对于商业软件系统,尤 ... -
MyBatis 使用 MyCat 实现多租户的一种简单思路
2017-11-20 18:27 2800本文的多租户是基于多数据库进行实现的,数据是通过不同数据库进 ... -
Spring+MyBatis实现数据库读写分离方案
2017-11-20 17:15 1023百度关键词:spring mybatis 多数据源 读写分离 ... -
数据库连接池druid wallfilter配置
2017-11-20 11:38 1225使用缺省配置的WallFilter <be ... -
java restful 实体封装
2017-11-16 09:47 1538package com.mogoroom.bs.commo ... -
dak
2017-11-15 11:21 0package zzm; import jodd.ht ... -
Java内存模型之从JMM角度分析DCL
2017-11-15 09:35 596DCL,即Double Check Lock,中卫双重检查锁 ... -
Java 打印堆栈的几种方法
2017-11-14 09:36 4663java 中可以通过 eclipse 等工具直接打印堆栈, ... -
Servlet Session学习
2017-11-10 09:25 505HTTP 是一种"无状 ... -
浅析Cookie中的Path与domain
2017-11-10 09:26 1013Path – 路径。指定与co ... -
入分析volatile的实现原理
2017-11-08 09:47 625通过前面一章我们了解了synchronized是一个重量级的 ... -
Spring MVC-ContextLoaderListener和DispatcherServlet
2017-11-15 09:35 635Tomcat或Jetty作为Servlet ... -
搭建spring框架的时候,web.xml中的spring相关配置,可以不用配置ContextLoaderListener(即只配DispatcherServl
2017-11-07 18:27 1383搭建spring框架的时候,web.xml中的sprin ...
相关推荐
今天开机发布程序,启动项目,竟然报错说8080端口被占用,没关系 只要是把占用这个端口的进程杀掉即可
在myeclipse中将html文件改成jsp文件时myeclipse卡住;将之前的任务关掉;再打开时多次部署项目的时候报错
系统设计<br> 1 jive设计思路 <br> 2 jive的工作内幕 <br> 3 Jive源代码研究 <br> 4 Jive中的设计模式 <br> 5 jive学习...2 RetroGuard的使用方法 <br><br> JVM<br> 1 JVM之class文件结构 <br> 2 JVM 內的資料處理 <br>
<br><br> 反编译<br> 1 反编译常用工具 <br><br> 混淆<br> 1 Sun公司的混淆器JADE <br> 2 RetroGuard的使用方法 <br><br> JVM<br> 1 JVM之class文件结构 <br> 2 JVM 內的資料處理 <br><br> <br> <br>MVC Framework...
<jvm-arg>-Xms512m</jvm-arg> <jvm-arg>-Xss128k</jvm-arg> <jvm-arg>-Xmn184m</jvm-arg> <jvm-arg>-XX:ParallelGCThreads=20</jvm-arg> <jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg> <jvm-arg>-XX:+UseParNewGC</...
List of the command-line options.<br><br>Jad accepts the following options:<br><br> -a - annotate the output with JVM bytecodes (default: off)<br> -af - same as -a, but output fully qualified names ...
<options> [-cp <classpath>]* <target to transform>+<br><br> options (optional) standard JVM options, e.g. -cp or -D...<br> <main class> class to execute<br> -jar <jar file> jar file to execute<br> ...
temp - Directory used by the JVM for temporary files (java.io.tmpdir)<br><br>If you do not pass the "-Dcatalina.base=$CATALINA_BASE" argument to the<br>startup command, $CATALINA_BASE will default to ...
<br>第3章 面向过程(数组和方法) 4课时<br> 理解如何声明数组、构造数组、初始化数组以及使用数组中的各个元素。<br> 清楚数组作为对象处理,创建数组对象时指定数组大小。<br> 能够声明和操作多维数组...
<br> }<br>}<br>}<br>本题在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,<br>两个x都匹配,就象在同时import java.util和java.sql两个包时直接声明Date一样)<br>本题主要考察对接口和类的...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>关于java异常处理(讲义)--JSP中文网</TITLE> <META content="text/html; charset=gb2312" ...初始化对象方法init()<BR>B...
<groupId>org.nutz.boot</groupId> <artifactId>nutzboot-maven-plugin</artifactId> <version>${nutzboot.version}</version> </plugin> </plugins> </build> 打包jar文件 mvn clean package nutzboot:shade ...
<br><br> 使用方法<br> 在要分发您的Java应用程序前,使用JavaClass文件加密专家对所有的Class文件或Jar文件进行加密,在您的系统运行参<br>数中加入以下内容:<br> 1.WEB应用程序<br> 在您使用的Java Web Server的...
<br>运行参数如下:<br>eclipse.exe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M <br><br>-------------- <br><br>JVM 提供了各种用于调整内存分配和垃圾回收行为的标准开关和非标准...
install <ServerName><ShowName><JarName>[<JVM>] remove: service remove remove <ServerName> Example: -install -ServerName JNISvr -ShowName "JNI服务" -JarName App.jar -JVM "-Xms64m -Xmx256m\" -...
<groupId>ml.dmlc</groupId> <artifactId>xgboost4j-spark</artifactId> <!--windows使用0.81-SNAPSHOT版本--> <!--version>0.80</version--> <version>0.81-SNAPSHOT</version> </dependency> ...
Java 6 JVM 参数选项大全(中文版) ...-XX:<option>=<number>给选项设置一个数字类型值,可跟单位,例如32k,1024m,2g -XX:<option>=<string>给选项设置一个字符串值,例如 -XX:HeapDumpPath=./dump.core
-l<num> - split strings into pieces of max <num> chars (splitstr) -lnc - output original line numbers as comments (lnc) -lradix<num>- display long integers using the specified radix -nl - split ...
从JVM内部获取该信息用法< dependency> < groupId>io.github.mweirauch</ groupId> < artifactId>micrometer-jvm-extras</ artifactId> < version>x.y.z</ version></ dependency> /* Plain Java */ final ...