- 博客(60)
- 资源 (18)
- 收藏
- 关注
原创 Redis 一些最佳实践
1,key尽量简短,且区分业务。2,redis的Key很昂贵,如果有大量的Key,考虑例如:Hash,或者进行业务上的合并。3,key的过期时间尽量错开,防止集中过期,Redis会出现短暂的卡顿。4,如果需要查找大量的Key,比如10W个以某个固定前缀开始的Key,如果使用模式匹配的话,因为Redis是单线程操作,会导致该线程阻塞一段时间,影响线上的业务,最好使用scan游标模式,...
2019-08-29 23:12:43
502
原创 Java分布式锁的四种实现方式(Redis,Zookeeper,Mysql,Memcached)
1,使用Redis做分布式锁:利用SETNX添加一个锁,并设置锁的释放时间。问题:a,某个机器实例的任务执行时长超时了,超过了锁释放的时间,会造成其他机器实例获取到该锁并执行任务。任务被同时执行。b,Redis的部署模式:如果是单实例,或者是master-slave模式。 Redis可能会挂(概率很小),或者只是针对master节点加锁,如果master节点故障,发生master,...
2019-08-29 23:10:01
508
原创 java 序列化的说明
当父类继承Serializable接口,所有子类都可以被序列化子类实现了Serializable接口,父类没有,父类中的属性不能序列化(不报错,数据会丢失),但是子类中属性人能正确序列化如果序列化的属性是对象,这个对象也必须实现Serializable接口,否则会报错在反序列化时,如果对象的属性有修改或删减,修改的部分属性会丢失,但不会报错在反序列化时,如果serialVersi...
2013-01-23 13:49:29
184
原创 Linux中top和free命令详解
top:命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 T...
2012-08-22 12:51:49
355
原创 Java重定向标准输入/输出
Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过System.out执行输出时,程序总是输出到屏幕。在System类中提供了三个重定向标准输入/输出的方法static void setErr(PrintStream err) 重定向“标准”错误输...
2012-08-21 20:35:21
158
原创 Java 线程Thread详解
在Java中,实现多线程的类是 Thread 类。 定义Thread对象有两种方法,一种是直接继承Thread,另一种是实现Runable接口。两者都需要写 run 方法。 而且,无论是哪一种方法,生成的线程都是 Thread。也就是说,其实线程类只有一种,那就是Thread。 线程也有自己的状态,除了新建,就绪,运行,等待/阻塞,死亡。这些状态可以转换。线程个状态的转换是:就...
2012-08-02 12:35:37
177
原创 Java 环境变量详解
当我们在Windows系统上安装jdk或者jre之后。必须需要设置的两个环境变量:Path, CLASSPATHPath首先需要在Path变量上添加Java的命令的路径:C:\Program Files\Java\jdk1.5.0_08\bin当我们运行Java程序时(实际也是调用Java命令来运行程序),和运行其它一些Java命令时,Windows会在Path变量指定的路...
2012-08-02 12:35:25
131
原创 Java命令java, javac, jar
java用法: (执行一个类) java [-选项] 类 [参数...] (执行一个jar文件(mainfest指定一个入口可执行类)) java [-选项] -jar jar文件 [参数...] 其中,可能的【选项】包括: -client 选择 "client" VM(ginger547:应该是指Virtual Machine)...
2012-08-02 12:35:14
136
原创 Java 内存泄露浅析
Java使用有向图的方式进行内存管理, 优点:可以消除引用循环的问题,管理内存精度高 缺点:效率低下(相比引用计数)。什么是Java中内存泄漏: 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: <一>:这些对象是可达的 <二>:这些对象是无用的 这些对象不会被GC所回收,然而它却占用内存。 Java内存泄漏...
2012-08-02 12:35:02
129
原创 Java 线程栈信息详解
windows系统中: 进程所拥有的内存空间都是独立的,此进程所持有的内存其它进程是不可以直接访问的, 而且在windows系统内部一个进程就是一个运行的运用程序, 而为了解决应用程序内部的并行问题便有了线程的概念,线程没有自我独立的内存空间, 在一个进程中所有的线程共享这个进程所持有的内存空间。 Unix, Linux系统中: 某些Unix系统当中,进程所持有的内存...
2012-08-01 23:48:44
256
原创 Java中AOP技术详解
AOP是Aspect Oriented Programming的缩写,意思是面向方面编程,与OOP(Object Oriented Programming)面向对象编程对等,都是一种编程思想。从OOP角度分析,我们关注业务的处理逻辑,是属于纵向的行为,从AOP角度分析,我们关注对象行为发生时的问题,是属于横向的行为。AOP 作用:1 监控函数的调用2 捕获异常发生...
2012-08-01 23:48:26
156
原创 Java中ASM框架详解
什么是asm呢?asm是assembly的缩写,是汇编的称号,对于java而言,asm就是字节码级别的编程。而这里说到的asm是指objectweb asm,一种.class的代码生成器的开源项目.ASM是一套java字节码生成架构,它可以动态生成二进制格式的stub类或其它代理类,或者在类被java虚拟机装入内存之前,动态修改类。现在挺多流行的框架都使用到了asm.所以从a...
2012-08-01 23:48:04
1277
原创 Java异常体系结构详解
Java所有Exception, Error的父接口:Throwable异常分为两种类型:第一种类型:非检查型异常(uncheckedException),不需要声明,不需要显式地使用try...catch语句来捕获它们。第二种类型:检查型异常(checkedException), 要求声明, 即必须使用try...catch来捕获并处理或者把异常交给上级方法处理。 什...
2012-08-01 23:47:40
137
原创 Java源代码文件与public类同名
java源文件的命名规则是这样的: 1,扩展名必须是.java 2,源文件中可以有多个类,但最多可以有一个public类 如有一个类是public类,那么这个类的名字必须与源文件的名字相同。 如果零个类是public类,那么源文件只要和某个类的名字相同即可。 // main方法必须放在public类中 public static void...
2012-08-01 23:47:24
465
原创 Java字符串及其编码
编码:将字符以编码的形式表示传输码,本地存储码和编码是不相同的两个概念,传输码,本地存储码是将编码以某种算法的形式进行了变换,然后进行传输,或者存储起来。在下面的描述中,将以"中文"两个字为例, GB2312编码是"d6d0 cec4", Unicode编码为"4e2d 6587", 这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示".i...
2012-07-31 12:37:59
174
原创 JRE 与 JDK ,JVM Client Server了解
JRE 与 JDK ,JVM Client Server了解一、JRE: java runtime environment java 运行环境JRE是运行java所需要的环境。包含JVM标准实现和JAVA核心类库,以及javaplug-in。可以在JRE上进行运行、测试和传输应用程序。JRE不包括编译器,调试器和其他工具。也就是说,如果直接运行一个java编译好了的cl...
2012-07-31 12:37:33
186
原创 JVM运行时内存分配
Inside JVM运行时数据区 ============================================================================================<一>:方法区: JVM中被装载的类型信息存储在一个逻辑上被称为方法区的内存中, JVM在装载完CLASS文件后提取其中的类型信息并将之存储在方法区。...
2012-07-31 12:31:41
151
原创 Object中getClass()方法详解
Obejct类有一个getClass()方法: 返回此 Object 的运行时类。 返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。public class Art { Art() { System.out.println("Art"); System.out.println(getClass().getName...
2012-07-31 12:29:24
580
原创 String.split() 需要注意的问题
特殊的分割符号:| * + \ \\在使用String.split()方法分隔字符串时,分隔符如果是一些特殊字符,可能会得不到我们预期的结果。jdk doc中说明public String[] split(String regex) Splits this string around matches of the given regular expression. 参...
2012-07-31 12:29:08
161
原创 Java IO详解
Stream:代表有能力产生数据或接收数据的源。java stream从行为模式上分为两大类:java.io.InputStream;java.io.OutputStream; 对于所有的InputStream, OutputStream, 从读取,输出数据的单位上分为: 以字节为单位,表示以字节为单位从stream中读取或往stream中写入信息 ByteA...
2012-07-30 19:13:16
91
原创 Java instanceof Class.isInstance() isAssignableFrom区别
instanceof 和 Class.isInstance() 功能完全相同:判断对象是否是一个接口的实例,或者是这个类及其子类的实例。注意用法: // 是静态,右边仅仅出现:接口或者类的名字 // 判断blackCircleObject是否是Shape的实例 if(blackCircleObject instanceof Shape){ System.out.pri...
2012-07-30 19:08:38
175
原创 Java byte数据类型详解
public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length...
2012-07-30 19:06:19
588
原创 Jakarta Commnos lang学习
ReflectionToStringBuilderReflectionToStringBuilder类是用来实现类中的toString()方法的类,它采用Java反射机制(Reflection),通过reflection包中的AccessibleObject类绕过访问控制而直接存取对象的私有成员。因此在使用该类时,要注意运行环境的安全策略。package sample;...
2012-07-30 19:03:47
120
原创 Linux load average 详解
Linux load average:中文名:系统平均负载,定义:在特定时间间隔内运行队列中的平均进程数。如果一个进程满 足以下条件则其就会位于运行队列中:它没有在等待I/O操作的结果它没有主动进入等待状态(也就是没有调用’wait’)没有被停止(例如:等待终止)由于linux采用多线程的执行模式,因此所有的执行任务都是通过竞争CPU时间片,获得执行。CPU...
2012-07-30 17:10:41
490
原创 vmware虚拟机常见优化方法和常见错误
使用很简单,建议参考虚拟机的帮助文档。仅介绍一些优化方法 1)给虚拟机指定固定的最大物理内存 工具栏选择“编辑”-“参数”-“内存”-可以根据实际的使用情况选择“系统内存分配给虚拟机的方式” 2)删除不用的虚拟设备 工具栏选择“虚拟机”-“设置”,选择不会用到的设备删除,比如“音频”,“usb控制器”。 3)安装VMware工具 开启虚拟机,工具栏选...
2012-07-20 13:25:29
492
原创 虚拟化技术
目前阿里巴巴主要是linux平台,虚拟机使用的是linux的Xen(准虚拟化技术)。 常见四种虚拟化技术: 虚拟技术1-硬件分区:硬件资源被划分成数个分区,每个分区享有独立的CPU、内存,并安装独立的操作系统。主要用在大型服务器上。 虚拟技术2-虚拟机技术:不再对底层的硬件资源进行划分,而是部署一个统一的Host系统。在Host系统上,加装了Virtual Machi...
2012-07-20 13:05:34
156
原创 java 访问控制符 protected,以及命名空间 妙用
在JAVA中,如果一个类,方法,属性被设置成protected,表明只能在子类或者同一个命名空间中才能使用,但我们可以巧妙的利用特殊的编码方式,在其他的命名空间下,创造同一个命名空间,从而访问 protected 代表的类,方法,属性。举例,定义一个Person类,注意:address 是protected static package test;import org.apa...
2012-06-10 16:02:50
174
原创 运行时获取java类来自哪个jar包或者绝对路径
例如: Class myclass = Class.forName("org.apache.commons.logging.Log");myclass.getProtectionDomain().getCodeSource().getLocation();
2012-04-18 13:38:51
643
转载 InetAddress.getLocalHost()详解
使用:InetAddress.getLocalHost() 出现异常:“Reason: java.net.UnknownHostException zw_65_43 : ..... 问题原因是在系统的 /etc/Hostname中配置了“zw_65_43” 作为主机名,而在/etc/hosts文件中没有 相应的“zw_65_43”。简单的解决办法是对应关系配好就可以,甚至删除/
2012-02-22 13:47:49
47503
转载 apt-get 与 aptitude 及 dpkg
1. 概述 apt-get 与 aptitude 都是 Debian 下软件安装升级的工具. 但 aptitude 在处理依赖问题上更好。aptitude 在删除一个包时,会同时删除无用的, 被本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。 所以, 更推荐使用 aptitude 命令.2. sources.list 软件
2012-02-04 21:47:49
843
转载 javascript特性小结
数组中的length属性,表示0到最末一位的长度,并不是表示数组中的实际的个数,如 a = []; a[5] = "4"; a[1000] = 58; a.length是1001。表示的0到1000的总长度。JavaScript只给数组中实际的存储了value的index分配内存。index超出0~2的32 -1,均视为数组的属性。Function被定义之后,可以作为两种方式来运用
2012-01-22 16:25:57
660
转载 javascript之prototype详解
如何在Javascript实现OO编程?恐怕最好的方式就是充分利用prototype属性。关于prototype的介绍有很多,我就不赘述了。比较基本的原理是,当你用prototype编写一个类后,当你new一个新的object,浏览器会自动把prototype中的内容替你附加在object上。这样,通过利用prototype,你也就实现了类似OO的Javascript。在Javascr
2012-01-22 16:17:30
331
转载 javascript中event详解
javascript中event详解分类:默认栏目event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程中才有效。event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。例子下面的例子检查鼠标是否在
2012-01-22 16:16:04
366
原创 javascript 常量
Javascript特殊数值常量:常量: 含义:Infinity 表示无穷大的特殊值NaN(是与处理数值相关的) 特殊的非数值Number.MAX_VALUE 可表示的最大数值Number.MIN_VALUE 可表示的最小数值Number.NaN 特殊的非数字值Number.POSITIVE_INFINITY 表示正无穷大的特殊值Number.NEGATIVE_IN
2012-01-22 16:14:56
965
转载 javascript对象继承详解
javascript对象继承通常有下面的5种方式: 1.对象冒充 2.call()方式 3.apply()方式 4.原型链 5.混合方式 A.对象冒充 所谓对象冒充,就是新的类冒充旧的类(旧的类必须采用构造函数方式),从而达到继承目的. eg.1
2012-01-22 14:49:22
397
原创 linux常用命令
1. man 对命令提供帮助解释 eg:man ls 就可以查看ls相关的用法注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。2. ls 查看目录或者文件的属*,列举出任一目录下面的文件 eg: ls /usr/man ls -l d表示目录(direct...
2011-12-23 19:47:31
92
原创 传递带空格的参数给linux shell中的java命令
比如说$ test.sh "2011-01-01 00:00:00" "2011-01-01 23:59:59" test.sh里面可以这样写$JAVA_HOME/bin/java com.javaeye.fangwei.Test "$@"
2011-08-20 15:52:56
1581
jdk-8u202-windows-x64.exe.zip
2019-12-17
jar包的一些用法,详细
2009-12-10
系统如何从字符集显示字体
2009-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人