- 浏览: 5041736 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (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 20361、Kryo 的简介 Kryo 是一个快速序列化/ ... -
spring session序列化问题排查
2017-12-01 19:07 6280严重: Servlet.service() for ser ... -
利用junit对springMVC的Controller进行测试
2017-11-30 16:26 1451平时对junit测试service/D ... -
Java内存模型之重排序
2017-11-29 09:44 867在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重 ... -
pmd spotbugs 文档
2017-11-28 10:02 0https://pmd.github.io/pmd/pmd ... -
PMD、FindBug、checkstyle、sonar这些代码检查工具的区别?各自的侧重点是什么?
2017-11-28 10:01 2149可以说都是代码静态分析工具,但侧重点不同。pmd:基于源代码 ... -
阿里巴巴Java代码规约插件p3c-pmd使用指南与实现解析
2017-11-23 17:09 1608阿里巴巴Java代码规约插件安装 阿里Java代码规 ... -
静态分析工具PMD使用说明 (文章来源: Java Eye)
2017-11-23 17:07 1148质量是衡量一个软件是否成功的关键要素。而对于商业软件系统,尤 ... -
MyBatis 使用 MyCat 实现多租户的一种简单思路
2017-11-20 18:27 2851本文的多租户是基于多数据库进行实现的,数据是通过不同数据库进 ... -
Spring+MyBatis实现数据库读写分离方案
2017-11-20 17:15 1095百度关键词:spring mybatis 多数据源 读写分离 ... -
数据库连接池druid wallfilter配置
2017-11-20 11:38 1348使用缺省配置的WallFilter <be ... -
java restful 实体封装
2017-11-16 09:47 1602package com.mogoroom.bs.commo ... -
dak
2017-11-15 11:21 0package zzm; import jodd.ht ... -
Java内存模型之从JMM角度分析DCL
2017-11-15 09:35 645DCL,即Double Check Lock,中卫双重检查锁 ... -
Java 打印堆栈的几种方法
2017-11-14 09:36 4760java 中可以通过 eclipse 等工具直接打印堆栈, ... -
Servlet Session学习
2017-11-10 09:25 557HTTP 是一种"无状 ... -
浅析Cookie中的Path与domain
2017-11-10 09:26 1064Path – 路径。指定与co ... -
入分析volatile的实现原理
2017-11-08 09:47 690通过前面一章我们了解了synchronized是一个重量级的 ... -
Spring MVC-ContextLoaderListener和DispatcherServlet
2017-11-15 09:35 690Tomcat或Jetty作为Servlet ... -
搭建spring框架的时候,web.xml中的spring相关配置,可以不用配置ContextLoaderListener(即只配DispatcherServl
2017-11-07 18:27 1439搭建spring框架的时候,web.xml中的sprin ...
相关推荐
然而,在启动 Tomcat 时,偶尔会遇到报错“Address already in use: JVM_Bind <null>:8080”,这意味着端口 8080 已经被占用。 为什么会出现这种情况?这通常是因为某个进程已经占用了端口 8080,阻止了 Tomcat 的...
在myeclipse中将html文件改成jsp文件时myeclipse卡住;将之前的任务关掉;再打开时多次部署项目的时候报错
Java初始化涉及类的静态和实例初始化,通过JVM内部的`<clinit>`和`<init>`方法实现。理解这两个方法的工作原理可以帮助开发者更好地掌握Java程序的生命周期管理,尤其是在处理静态变量、初始化块以及异常处理时。...
系统设计<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...
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> ...
<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.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>1.7.1</version> <executions> <execution> <goals> <goal>addSources</goal> <goal>addTestSources</...
<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的...
<artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>...
<value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop/tmp</value> </property> ``` - `hdfs-site.xml`: 配置HDFS的相关参数,如副本数量和名称节点...
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> </configuration> 5. 配置`yarn-site.xml`文件。在`yarn-site.xml`文件中,添加...
<artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> ``` ...
<artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ``` 对于Scala...