`
benx
  • 浏览: 272184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
  JAVA   public class Test { public static void main(String[] args) { int i = 1000; int j = 2000; int a = i++; int b = ++j; } } 汇编 0: bipush 1000 // 2: istore_1 //设置 i=1000 index=1的本地变量 3: s ...

瞎聊系统性能优化

    博客分类:
  • java
一个系统中影响性能的无非就是CPU计算能力,磁盘、网络的读写能力,解决的方式也无非是减少cpu,io 计算或访问次数,或者是提高cpu,io的计算能力或io访问能力   那么如果如何减少次数或提高能力呢?   这个讨论的范围很广:包含。。。。。。。。。。。。     不管是cpu计算还是IO,最重要的一种方式就是缓存,把常用的cpu计算结果缓存起来,把常用的数据缓存起来。   缓存利用的计算机的局部性原理,局部性分为时间局部性(最近访问的数据,在不久会多次访问)和空间局部性(会连续访问附近的数据)     没完待续...  
源文章地址:http://sinian.iteye.com/blog/149363   如果想要通过IP直接访问web系统,而不加端口号的话,需要在server.xml文件中进行如下修改:     1、把默认的8080端口,改成浏览器请求的默认端口80。  Java代码  

java 编码

    博客分类:
  • java
  先看一个字符串   String str = "Hello 简体 繁體 한국어 ";   字符串本无编码,就是一个字符串,但是计算机不能保存字符串,只能以二进制的形式保存,所以就会有字符串到二进制的转换动作,这个转换的规则叫编码规则,不同的规则就是不同的编码,比如gbk,gb2312,utf-8 下面看一个例子     import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; public class CharSetTest { /** ...

javassist与classLoader

    博客分类:
  • java
  javassist.jar是个非常不错的classCode修改框架,简单实用   通过javassist和classLoader结合,在加载class时修改class,类似于Spring AOP,可以在指定的class中额外加载指定的功能   下面的例子中,在AppClassLoader的classPath中包含的class都加 ...

tcp 和 java socket

    博客分类:
  • java
  tcp socket 总结点   1、操作系统分为内核态和用户态,tcp协议实现属于操作系统内核态,然后socket传输过程中发送方和接收方都有自己的窗口(buffer),那么就必须会有内核态的buffer到用户态的buffer拷贝   2、java 的socket只是 ...

netty 疑惑

    博客分类:
  • java
 
  netty的nio 模式如下  一个线程Boss使用选择器监听OP_ACCEPT,当有accept请求过来时,挑选一个worker线程,注册到worker里面去   cpu内核*2个线程Worker监听OP_Read和OP_WRITE(实际上是线程池中这么多线程),当可读时,可写时,读取或写入数据,然后发起事件执行pipe中的hander链   问题在于,系统就这么几个线程,不管是accept或read或write 都是同步处理,假设出现在处理过程中出现死锁或长处理等逻辑,那么直接导致阻塞后面的处理。   我的建议,因为netty是基于事件处理机制,使用线程池,专门负责re ...
1、安装Tomcat ,为了使域名保持一致,在conf\Catalina\localhost中新建ROOT.xml 内容如下 <Context path="" docBase="D:\Workspaces\Benx\WebContent" reloadable="true" allowLinking="true" /> 2、安装Aache ,需2.2或以上版本 3、修改httpd.conf 添加或打开如下内容 LoadModule proxy_module modules/mod_proxy.so L ...

谈线程池

    博客分类:
  • java
线程池原理:用指定数量的线程,执行大量的线程任务   线程池作用: 假设目前有1000个任务需要执行,电脑的CPU核心为4,没有其他任务使用CPU。 那么有如下方式可以执行上述任务: 1、使用单个线程线性的执行1000个任务 ...

设置tomcat启动参数

    博客分类:
  • java
window: 在catalina.bat 文件的开始处添加如下 set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx512m  -XX:MaxPermSize=80M linux 在 cataliba.sh 文件中添加 JAVA_OPTS='-server -Xms512m -Xmx512m  -XX:MaxPermSize=80M' 具体参数含义可以参考 Java HotSpot VM Options
public void method4() { int i = 1; int j = 2; int a = i++; int b = ++j; } 使用javap -c 解开class后 0: iconst_1 //从常量池取出1放入操作栈顶 1: istore_1 //把操作栈顶元素保存到本地变量i中 i=1 2: iconst_2 //从常量池取出2放入操作栈顶 3: istore_2 //把操作栈顶元素保存到本地变量j中 ...

hotspot 控制参数

    博客分类:
  • java
JVM 
  文档来源于 http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html     This document provides information on typical command-line options and environment variables that can affect the performance characteristics of the Java HotSpot Virtual Machine. Unless otherwise noted, all ...

Spring 事务异常回滚

    博客分类:
  • java
 
  先看如下代码     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = { AppBizExeA.class } , noRollbackFor = { AppBizExeB.class }) public void method1() throws Exception { System.out.println("method1 start"); TPerson per = new TPerson(); per.setAge("24"); ...

java IO和NIO测试

    博客分类:
  • java
测试环境:cpu:Q9500 4核    频率2.83GHZ      内存4G   文件大小200M   测试代码   package com.lottery; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.nio.ByteBuffer; ...

静态锁和实例锁

    博客分类:
  • java
  Java中可以对静态方法和实例方法使用synchronized   当在静态方法前面加synchronized 表示锁定class , 当多个线程同时调用静态方法时会阻塞   当在实例方法前面加synchronized 表示锁定class的单个实例 , 当多个线程同时调用class的实例的实例方法时会阻塞   注意:静态方法synchronized 和实例方法synchronized 互不干扰,也就是说当静态方法锁后,不影响实例方法调用,反过来一样     package com.lottery; public class Test { public ...
Global site tag (gtag.js) - Google Analytics