一、基础知识:1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+j...
分类:
编程语言 时间:
2015-01-06 11:16:04
阅读次数:
195
JNI技术对于多java开发的朋友相信并不陌生,即(java native interface),本地调用接口,主要功能有以下两点:
1、java层调用C/C++层代码
2、C/C++层调用java层代码
可能有些人会觉得jni技术破坏了Java语言的跨平台性,有这种想法可能是因为你对java理解得还不够深,如果你看看jdk源码,你会发现在jdk里面大量使用了jni技术,而且java虚拟机就是用本地语言写的,所以导致jvm并不能跨平台性,所以说java的跨平台性并不是100%的跨平台的。相反你应该看到使用...
分类:
移动开发 时间:
2015-01-05 13:01:33
阅读次数:
245
一、什么是JNI
JNI是Java Native Interface的缩写(Java本地调用),Java程序中的函数可以调用Native语言写的函数(一般指的是C/C++编写的函数),Native语言写的函数可以调用Java层的函数。
二、为什么要有JNI
Java语言的跨平台是因为在不同平台上可以运行Java虚拟机,而虚拟机是跑在具体平台上的,而本质上Java是通过JNI技术实现的跨平台,很多基层的模块在Java语言诞生之前已经有了比较优秀的实现,为了避免重复造轮子所以我们要使用JNI技术来使用已有的模块...
分类:
移动开发 时间:
2015-01-05 00:37:10
阅读次数:
331
Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和实例类变量的初始化过程是否相同,分别是如何初始化的呢?这篇文章就是解决上面3个问题的。若有不正之处,请多多谅解并欢迎各位能够给予批评指正,提前谢谢各位了。1.Java虚拟机加载.class过程虚拟机把Cl...
分类:
编程语言 时间:
2015-01-02 19:51:11
阅读次数:
308
最近刚开始看《深入理解JAVA虚拟机》这本书。第一章的实践是自己手动编译openjdk7,但书上的步骤都是基于windows的,于是在网上搜了一下linux下编译openjdk的资料:http://blog.csdn.net/kindazrael/article/details/7266314htt...
分类:
系统相关 时间:
2015-01-01 00:03:30
阅读次数:
409
今天是2014年最后一天,做一个总结和复盘过去的一年。
学习和成长:
1. Java学习方面。
书籍:《java核心技术卷1》《java核心技术2》(部分),《Maven实战》《深入理解Java虚拟机:JVM高级特性与最佳实践》以及《Netty权威指南》和《Spring框架》(一部分)
积累的经验:总体上对Java有了深入的理解,并且能熟练运用
2....
分类:
其他好文 时间:
2014-12-31 21:34:42
阅读次数:
247
网站优化方案:网站优化有很多方面,这里我们先主要讲讲 tomcat优化。【主要针对tomcat6.0及以上版本】1. 为jvm增加更多的内存,tomcat安装时,默认为126M,可以设置。Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。您可以选择自己的需...
分类:
Web程序 时间:
2014-12-30 15:00:32
阅读次数:
220
本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、java虚拟机内存原型寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非R...
分类:
编程语言 时间:
2014-12-30 09:16:17
阅读次数:
156
今天eclipse启动报错,如下: 对于这种情况,原因是计算机的内存不足。可以通过修改eclipse的配置文件来解决这种情况~两种方法:1、修改初始堆大小,网上普遍的解决方法1)找到eclipse根目录下的配置文件E:\soft\eclipse\eclipse.ini2)修改eclipse.ini,...
分类:
编程语言 时间:
2014-12-30 09:16:06
阅读次数:
146
此处附上原文地址 http://blog.csdn.net/mrliu20082009/article/details/73297421、基本沙箱(1)类加载器a)它防止恶意代码干涉善意代码。为由不同的类加载器加载的代码提供不同的命名空间,在java虚拟机中,在同一个命名空间的类可以直接交互,但是不...
分类:
其他好文 时间:
2014-12-30 00:29:50
阅读次数:
169