Java核心技术卷II(第8版) – 读书笔记 – 第12章

本章的内容是JNI(Java Native Interface),即从Java中访问本地方法(其他语言)。

1、当需要在Java中嵌入其他语言编写的代码,如C时,后者称为本地代码。

2、一般来说,Java虽然在单纯运算方面效率慢于C等,但这往往不是性能瓶颈。例如密码运算在某C/S中占用的时间为10%,网络、I/O速度占90%,用C比Java快两倍,则speedup只有1+0.1*2=1.2,只提升了20%(阿姆达尔定律)。

3、当然,如果项目是遗留的,之前已经有了大量,无法被迁[......]

继续阅读

Java核心技术卷II(第8版) – 读书笔记 – 第11章

1、Java已经逐渐支持在源代码中内嵌调用其他脚本语言,如Javascript / Groovy等。此外,也支持源代码注解,以上这些都是通过编译器API完成的。

2、要内嵌脚本,首先要获取脚本引擎:
// Make manager first
ScriptEngineManager manager = new ScriptEngineManager();
// name could be js/groovy/schema ...
ScriptEngine engine = mana[......]

继续阅读

Java核心技术卷II(第8版) – 读书笔记 – 第10章

1、本章关注Java分布式技术,特别是用于两个Java虚拟机之间的远程方法调用RMI。

2、我们想要这样一种机制:客户端的程序员以常规方式进行方法调用,而无需关心在数据在网络上传输或者解析响应的问题(解决方法是在客户端上安装一个代理类,由他处理技术细节)。

3、类似的,服务器端也需要有这样的功能,让传输和业务逻辑分离,于是有了如下的结构:

客户端 <-调用本地方法、返回-> 代理 <-->代理 <-调用本地方法,返回-> 服务器

4、代[......]

继续阅读

Linux下查看进程的I/O占用情况

又一台服务器出现疑似I/O瓶颈:CPU占用0,系0负载却到了4,而且进程基本停滞了。。

iotop什么挺麻烦的,推荐一下iopp:

https://github.com/markwkm/iopp/

直接下载那个iopp.c编译就好了:
gcc ./iopp.c -o ./iopp
看一下用法:
usage: iopp -h|--help
usage: iopp [-ci] [-k|-m] [delay [count]]
-c, --command display f[......]

继续阅读

Java核心技术卷II(第8版) – 读书笔记 – 第9章

1、安全机制是Java不可分割的一部分,主要从以下方面:

(1)语言设计特性(越界、类型、无指针等)
(2)访问控制(文件访问、网络访问)
(3)代码签名(用加密算法表明作者身份,代码是否被修改过)

2、类加载器将在加载时检查类是否完整,它与“安全管理器”协同工作。

3、Java编译器将.java文件编译成字节码.class文件。后者必须由解析器解释后才能执行。每个Java程序至少有三个类加载器:

引导类加载器:是JVM虚拟机的一部分,通常用C实现,他们没有Class[......]

继续阅读