每天学一点:java虚拟机8

特殊字符串:
常量池中容纳的符号引用包括三种特殊的字符串:权限定名、简单名称、描述符。
所有的符号引用都包括类或者接口的全限定名。
字段的符号引用除了全限定类型名外,还包含简单字段名和字段描述符。
方法的符号引用除了全限定类型名外,还包含简单方法名和方法描述符。

字段的描述符给出了字段的类型,方法描述符给出了方法的返回值和方法参数的数量、类型、顺序;

方法描述符只能包含255个字长以内的参数,传给实例方法的隐藏this参数引用占用一个字长,除long、double外的基本类型参数占用一个字长;

在类或者接口中声明的每一个字段(类变量或者实例变量)都有class文件中的一个名为field_info的可变长度的表进行描述。
方法:每个在、接口声明或者由编译器产生的方法,都可由一个可变长度的method_info表描述;

java虚拟机定义了9种属性,所有虚拟机都必须能够识别:Code、ConstantValue、Exception三种属性;
为了正确实现java、java2平台类库,虚拟机必须能够识别:InnerClass、Synthetie属性。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

java调用shell脚本 - 2016-01-26 14:01:47

附件java执行shell.rar里是已经下载好的jar包。 http://www.jcraft.com http://www.jcraft.com/jsch/examples/ https://en.wikipedia.org/wiki/Expect https://github.com/cverges/expect4j 可以到maven里搜索expect4j http://www.ganymed.ethz.ch/ssh2/ 可以到maven里搜索ganymed-ssh2 http://xpenxpen.
功能点需求,设计作品存在点赞量属性,该属性放入redis,现在需要安装点赞量排序,考虑redis的set,即对应ZSetOperations。 /**  * 增加点赞量  *  * @param workId  * @return  * @author qiaolu  * @date 2015-12-19  */           public Double incrWorkNice(Long workId) {                                               

多线程优化 - 2016-01-26 14:01:45

public void newExecute() { //获取线程数,默认30 int threadNum = 30; String strThreadNum = LionConfigUtils.getProperty("ts-monitor-job.dailyJob.accountBalanceDailyCheckerThreadNum", ""); if (isNumeric(strThreadNum)) { threadNum = Integer.parseInt(strThreadNum); }
规则协同管理之信息维护         信息维护只有两个部分内容:个人资料,修改密码。 一、个人资料         个人资料:查看自己的资料信息。信息由四部分组成:用户名称,电子邮件,手机号码,职位,页面如图所示: 二、修改密码         修改密码要输入原始密码以及新密码,重复密码。如图所示:         只要原密码正确,以及新密码和重复密码相同,点击提交密码修改就成功。

Java NIO原理及分析 - 2016-01-26 14:01:34

前言:       最近由于公司项目重构,需要用SOA分布式架构。在这里我采用的是比较轻量级的ZBUS总线来实现。而使用ZBUS总线最关键的就是底层socket通信问题。这里的通信问题就涉及到了java的NIO非阻塞机制,下面就参考一些别的资料,做一些简要的分析。     首先来分析下阻塞IO与非阻塞IO的区别     1、阻塞IO:阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 绝请求

java调用js:javax.script - 2016-01-26 14:01:16

服务端调用js:javax.script 谈起js在服务端的应用,大部分人的第一反应都是node.js。node.js作为一套服务器端的 JavaScript 运行环境,有自己的独到之处,但不是所有的地方都需要使用它。 例如在已有的服务端代码上增加一个业务,而这个业务使用的却是js编写。如果用node.js处理的话,会很麻烦。而且另一方面对于很多服务端程序员来说,觉得js的对象模型很奇怪,不太喜欢用js处理问题。 对于上面这种情况,有一种简单的处理方法: javax.script API javax.sc

Java实现生命周期管理机制 - 2016-01-25 18:01:15

关注微信号:javalearns   随时随地学Java 或扫一扫     随时随地学Java 先扯再说 最近一直在研究某个国产开源的MySQL数据库中间件,拉下其最新版的代码到eclipse后,启动起来,然后做各种测试和代码追踪;用完想要关闭它时,拉出它的STOP类想要运行时,发现这个类里赫然只写以下几行代码,于是我感觉瞬间受到了很多伤害。 public static void main(String[] args) { System.out.println(new Date() + ",server

Palindrome Number 回文数 - 2016-01-25 17:01:29

Determine whether an integer is a palindrome. Do this without extra space. 判断一个数是否为回文数。我们需要知道的负数不属于回文数。可以有很多种思路解决这道题。可以把这个整数转换成字符串,然后用双指针进行比较;也可以将这个整数反转,然后对比反转后是否和原来的数相同。第一种方法不用考虑整数越界问题,用第二种方法的时候要注意越界问题。下面是两个方法的代码: 1,转成字符串 public class Solution { public bo
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 题目的要求是给定一个字符串,找到一个最长的回文子串。 解决这道题首先我们要知道回文字符串的概念,单个字符属于回文字符串,例如"a", 还有另外的形式例如:“baa
Write a function to find the longest common prefix string amongst an array of strings. 题目的要求是给定一个字符串数组,在所有字符串中找到最长的公共前缀。 对边界情况的解决,如果数组为空,那么就返回0。我们取出第一个元素,然后依次取第一个元素包含的字符,将这个字符与剩余的字符串相比,看在同一位置上是否相同,如果不同或者当前字符所在位置已经超过带比较字符串的最大长度我们就结束搜索,返回结果。代码如下: public clas