- 浏览: 276162 次
- 性别:
- 来自: 北京
最新评论
-
gotosuzhou:
好的 谢谢分享
Spring 事务异常回滚 -
cd249745647:
哈哈
Spring MVC REST 例子 -
向日葵上的小蜜蜂:
代码都差不多贴出来了,为啥不直接提供下载呢
Spring MVC REST 例子 -
he3109006290:
我猜它应该有个算法,当出现长时间处理的情况的,它自动会启动另外 ...
netty 疑惑 -
yanghoho6:
很好, 学习了,
oracle基本的索引概念.doc
文章列表
自增 自减 java和c的区别
- 博客分类:
- java
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 ...
一个系统中影响性能的无非就是CPU计算能力,磁盘、网络的读写能力,解决的方式也无非是减少cpu,io 计算或访问次数,或者是提高cpu,io的计算能力或io访问能力
那么如果如何减少次数或提高能力呢?
这个讨论的范围很广:包含。。。。。。。。。。。。
不管是cpu计算还是IO,最重要的一种方式就是缓存,把常用的cpu计算结果缓存起来,把常用的数据缓存起来。
缓存利用的计算机的局部性原理,局部性分为时间局部性(最近访问的数据,在不久会多次访问)和空间局部性(会连续访问附近的数据)
没完待续...
源文章地址:http://sinian.iteye.com/blog/149363
如果想要通过IP直接访问web系统,而不加端口号的话,需要在server.xml文件中进行如下修改: 1、把默认的8080端口,改成浏览器请求的默认端口80。
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的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 ...
线程池原理:用指定数量的线程,执行大量的线程任务
线程池作用:
假设目前有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
通过反汇编class看i++和++i的区别
- 博客分类:
- java
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中 ...
文档来源于
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中可以对静态方法和实例方法使用synchronized
当在静态方法前面加synchronized 表示锁定class , 当多个线程同时调用静态方法时会阻塞
当在实例方法前面加synchronized 表示锁定class的单个实例 , 当多个线程同时调用class的实例的实例方法时会阻塞
注意:静态方法synchronized 和实例方法synchronized 互不干扰,也就是说当静态方法锁后,不影响实例方法调用,反过来一样
package com.lottery;
public class Test {
public ...