- 浏览: 15803 次
- 来自: 杭州
最新评论
文章列表
在源码编译期去掉某个java类的编译:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<executions>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile& ...
public class EnumUtil {
public static <T extends Enum<?>, S extends Enum<?>> T convertEnum(S source, Class<T> targetClass) {
if (source instanceof Enum) {
String sourceEnum = ((Enum<?>) source).name();
try {
return getEnumObject(sourceEnum, targetCla ...
java加载资源的时候相对路径,就是相对本class资源文件的路径,比如:getResourceAsStream("../config.properties"),代表上一级目录下。
绝对路径就是在classPath的绝对路径下查找资源,比如:getResourceAsStream("/config.properties")就是在classpath+/config.properties位置查找。
其中classpath可以用户自己去查看
System.out.println(System.getProperty("sun.boot.cla ...
思路一 :打破双亲加载
1、在Java中默认的Class加载顺序都是父类委托加载,但是有些时候需要自定义加载顺序比如OSGI和ali的Pandora。
2、父类委托加载的基本实现思路,loadClass中在parent中查找class,要是不存在parent则使用findBootstrapClassOrNull调用native方法,要是找不到,使用其中findClass去查找。
3、普通自定义classLoader只是继承loadClass方法,实现findClass做到自定义去加载自己位置或者自己实现的class。但是要想打破父类委托机制去自定义前后顺序去加载class就要完全自己去实现 ...
一、SPI的全名为Service Provider Interface,是JDK内置的一种机制,是一种动态服务发现的机制。
基本思路是ServiceLoader负责读取写死路径下的配置然后将其中的类加载进行执行,当然这种服务面对的是接口层次。
基本代码层次如下:
core.spi.HelloInterface 内容:
core.impl.LiMingHello
core.impl.WangChaoHello
Main 函数:
package core;
import java.util.ServiceLoader;
import core.spi.HelloIn ...
一、ACID是事务的基本标准,最终的目的就是一致性和持久性,其中原子性和隔离性只是为了满足前面2条的手段;原子性的基本原则是对数据的操作要么全部生效,要么全部不生效;隔离性至少保证在同一批数据的范围内,操作 ...
最近使用Go语言,使用http server,做了一个简单Url到StructName/MethodName的简单映射。主要思路是将Url能够StructName/MethodName做个映射,只需在Struct中添加方法就可以添加了实现,比如localhost:9000\struct\a和localhost:9000\struct\b,若是struct需要添加可以定义新的Struct然后将新的Struct注册进去就可以。
核心代码:
type Server struct {
allStruct map[string]*StructDefind
}
type St ...
1、SQL LIKE 忽略大小写的方式
select * from TableA a where UPPER(a.name) like '%MAIL%'
2、Table Inner Join的使用
select a.name,b.name where TableA a join TableB b on a.condition = b.condition where a.filter = 'aFilter' and b.filter = 'bFilter'
内联是交集,外联是并集,左外联左全集
1、grep查找多参数
grep -E "PID|JAVA"
grep -e PID -e JAVA
2、查询进程
ps -aux
ps -ef
一、最近遇到了引用申请机器规格扩大的问题
但是应用本身的JVM参数调整不太准确,导致要么资源使用率不高,要么Java进程很可能被Kill掉。
以8G内存的机器为例,比较合适的参数:
-Xmx:5G 最大的堆内存
-Xms:5G最小的堆内存(直接开辟内存)
-Xmn:1G新生代(本应用主要的使用时老年代,表现FullGC比较频繁)
-XX:MaxPermSize:256m 方法区
-XX:MaxDirectMemorySize:512m (jni里分配的内存,DirectByteBuffer分配的内存等等)
所以使用的内存 5G+256m+51 ...
1、测试单个文件
go test -v file_test.go
2、测试单个文件内单个测试用例
go test -v file_test.go -test.run TestFunc
最早没有使用的是ASCII,用7位表示128个字符:大小写字母、标点、控制符号,这对早期的操作系统是完全足够的,但是随着各国语言的加入这些字符就远远不够了。
最简单的方式就是增加位数,Unicode顺应而出。我们可以将一个符文序列表示为一个int32序列,这种编码方式叫UTF-32,这种方式比较统一,但是大部分数据使用的ACSII就够了这样就很浪费存储空间。
更进一步采用变长字符表示这些字符,这就是UTF-8,基本思路就是使用额外的字段对解析方式做了区分。
0xxxxxxx (ASCII)
110xxxxx 10xxxxxx 128-204 ...
四层负载均衡指的是在即在OSI第4层工作,就是TCP层,一般使用的LVS的IP负载均衡;每个LVS中的负载均衡服务器都有一个IP一般称为VIP,而用户对服务请求必须基于对此VIP进行访问,
当用户的请求到达VIP如何分配到RealServer上的,此处有3中实现分别是分别是NAT、TUN和DR:
NAT: 即(Virtual Server via Network Address Translation):
网络翻译技术实现虚拟服务器,当用户的请求到达VIP Server的时候,VIP Server根据一定的负载均衡策略,修改报文的目的IP和端口为Real ...