![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 79
arkblue
充满劳绩,但人还诗意地栖居在,大地之上
展开
-
一些基础的东西
1 Java寻找class的文件原理javac -classpath yourpath *.java java -classpath yourpath *.class 也许很多人都能看懂,设置classpath的目的就是告诉编译器去哪里寻找你的class文件. 不过至少笔者今日才弄懂JVM去查询类的原理,编译器加载类要依靠classloader, 而classloader有3个级别,从高转载 2009-12-02 14:30:00 · 665 阅读 · 0 评论 -
java运行期间打印方法调用栈
StringBuilder sb=new StringBuilder(""); Exception e = new Exception("hhhhhhhhhhhhhhhhhhh"); StackTraceElement[] trace = e.getStackTrace();; for (int i=0; i < trace.len原创 2013-07-26 08:53:36 · 5788 阅读 · 0 评论 -
数值类型自动提升的例子&hashcode为负数
1 Math类的abs方法 public static int abs(int a) { return (a < 0) ? -a : a; } 注意到该方法 有这样一段注释 Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative repres原创 2014-01-08 20:16:19 · 8799 阅读 · 0 评论 -
apache httpclient 使用例子
public static String getHttpResponse(String url, NameValuePair[] data) throws HttpException, IOException { HttpClient client = new HttpClient(); client.getParams().setParameter(HttpMethodParams.HT原创 2014-08-14 15:41:29 · 1424 阅读 · 0 评论 -
java jdb 命令行调试程序
日常的可以远程debug程序,线上程序查看duiz原创 2014-10-01 18:10:47 · 41241 阅读 · 3 评论 -
Disk quota exceeded 导致NoClassDefFoundError
1 发现页面突然不好用了:异常java.lang.NoClassDefFoundError: Could not initialize class com.taobao.jingwei.server.util.HttpPost堆栈有cglib com.taobao.jingwei.webconsole.web.module.screen.JingweiTask原创 2014-12-05 22:21:22 · 9526 阅读 · 0 评论 -
java 获取下周一日期
// 获得当前日期与本周日相差的天数 private static int getMondayPlus(Date gmtCreate) { Calendar cd = Calendar.getInstance(); cd.setTime(gmtCreate); // 获得今天是一周的第几天,星期日是第一天,星期二是第二天...... int dayOfWeek = cd.get(原创 2016-07-23 17:01:06 · 7272 阅读 · 1 评论 -
整形自动拆包引起的NPE
在比较运算符运行前,会强制类型转换 左值和右值;如果有一侧的值是null,则编译不过去,如果运行时才能确定左值或右值真实值,则运行时会抛出NPE。 public static void main(String[] args) { Integer a = null; System.out.println(1 == null); //The operator == is undefined原创 2016-08-05 09:29:05 · 581 阅读 · 0 评论 -
eclipse 安装 lombok
1.下载lombok.jar包https://projectlombok.org/download.html2.运行Lombok.jar: java -jar D:\software\lombok.jar D:\software\lombok.jar这是windows下lombok.jar所在的位置 数秒后将弹出一框,以确认eclipse的安装路径3.确认完ecl转载 2016-09-21 14:56:59 · 31268 阅读 · 2 评论 -
java 低版本运行环境执行高版本编译jar包
Instantiation of bean failed; nested exception is java.lang.UnsupportedClassVersionError: : Unsupported major.minor version 51.0 (unable to load class )原创 2017-02-09 12:50:48 · 6221 阅读 · 0 评论 -
guava RateLimiter
令牌桶算法(token bucket algorithm)场景1 在流量监管中的应用【http://blog.csdn.net/maotianwang/article/details/14167619】约定访问速率(CAR)是流量监管常用技术之一,可以应用在端口进和出方向,一般应用在入方向,它的监管原理如图1所示。a. 按特定的速率向令牌桶投放令牌b.原创 2017-02-10 20:42:15 · 987 阅读 · 0 评论 -
jdk8 特性例子- lambda expressions
public class ComparatorTest {public static void test() {List names = Arrays.asList("peter", "anna", "mike", "xenia");Collections.sort(names, new Comparator() {@Overridepublic int compare原创 2017-02-12 18:39:25 · 562 阅读 · 0 评论 -
jdk8特性例子Method and Constructor References
Functional InterfacesHow does lambda expressions fit into Javas type system? Each lambda corresponds to a given type, specified by an interface. A so called functional interface must contain exa原创 2017-02-12 19:17:00 · 739 阅读 · 0 评论 -
jdk8 特性例子 接口默认方法 default method
1 default method 默认方法。在接口的方法前增加default关键字,匿名类无需实现默认方法。public class DefaultMethod { interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); } } pu原创 2017-02-12 17:16:18 · 1128 阅读 · 0 评论 -
jdk8特性例子 内置函数式接口
PredicatesPredicates are boolean-valued functions of one argument. The interface contains various default methods for composing predicates to complex logical terms (and, or, negate)谓词谓词是只有一个原创 2017-02-13 23:04:54 · 2249 阅读 · 0 评论 -
jdk8特性例子 流 Streams
A java.util.Stream represents a sequence of elements on which one or more operations can be performed. Stream operations are either intermediate or terminal. While terminal operations return a res原创 2017-02-15 20:34:26 · 1377 阅读 · 0 评论 -
java8 特性例子 Map 新增方法
public class MapTest { public static void main(String[] args) { Map map = new HashMap<>(); for (int i = 0; i < 10; i++) { map.putIfAbsent(i, "val" + i); } map.forEach((id, val) -> System原创 2017-02-15 23:15:00 · 2091 阅读 · 0 评论 -
java反射访问私有成员变量
public class ReflectTest { private volatile String name = "before"; public void setName(String name) { this.name = name; } public static void main(String[] args) { ReflectTest test = new Ref原创 2013-06-24 08:50:37 · 6935 阅读 · 0 评论 -
java iterator 遍历删除容器
Iterator it=hs.keySet().iterator(); while(it.hasNext()){ String str=(String)it.next(); if (str.contains('condition')) it.remove(); }原创 2013-06-09 15:53:47 · 4129 阅读 · 0 评论 -
设置Eclipse编码方式
<br />1<br /> <br /> <br /><br /> <br /> <br /> <br /> <br /><br /> <br /> <br /> <br />2 <br /> <br /> <br /> <br />3<br /> <br />原创 2010-08-30 16:25:00 · 1001 阅读 · 0 评论 -
java NIO 点滴
1 主要涉及ByteBuffer和FileChannel两个类,下面的代码示例描述了一个文件拷贝的例子:public class CopyFile { public static void main(String[] args) throws Exception { String infile = "C://edpmain.log"; String outfile = "C://edpmain_to.log"; // 获取源文件和目标文件的输入输出流 FileInputStrea原创 2011-01-10 12:36:00 · 704 阅读 · 0 评论 -
遍历文件夹 非递归 只收集指定后缀的文件
public class FileSystem { public static void main(String[] args) { long start = System.currentTimeMillis(); LinkedList list = new LinkedList(); File dir = new File("c://temp//"); File file[] = dir.listFiles(); for (int i = 0; i原创 2011-01-10 20:02:00 · 1344 阅读 · 0 评论 -
常量
<br />java puzzler 93<br />1对于常量域的引用会在编译期被转化为它们所表示的常量的值[JLS 13.1]。<br />这样的域从技术上讲,被称作常量变量(constant variables)。一个常量变量的定义是:一个在编译期被常量表达式初始化的final 的原始类型或String 类型的变量[JLS4.12.4]<br />2 是null 不是一个编译期常量表达式<br /> <br />package arkblue.javapuzzler.n93;public cl原创 2010-11-22 18:01:00 · 604 阅读 · 0 评论 -
《A Generational Mostly-concurrent Garbage Collector》部分翻译和笔记
本文主要记录了学习一片E文的内容,关于CMS算法的知识,翻译一部分算法,记录这篇文章涉及到的其他名词,这些名词体现的内容是有意义的。 首先列出这篇文章涉及到的一些可以引申的概念,以备以后查看 (1)GC Interface 和 generational framework : (2)tricolor collection (3)write barrier 开始翻译第三节 3 Mostly-concurrent Collection 原始翻译 2011-01-20 11:50:00 · 1711 阅读 · 0 评论 -
异常处理相关 try/finally语句
1 javapuzzler 36 一条语句或一个语句块在它抛出了一个异常,或者对某个封闭型语句执行了一个break 或continue,或是象这个程序一样在方法中执行了一个return 时,将发生意外结束。它们之所以被称为意外结束package arkblue.javapuzzler.n35;public class Indecisive { public static void main(String[] args) { System.out.println(decision());原创 2010-11-24 08:38:00 · 813 阅读 · 0 评论 -
内部类 匿名类 静态内部类 局部类
<br />java puzzler 92<br /> <br />package arkblue.javapuzzler.n92;public class Twisted { private final String name; Twisted(String name) { this.name = name; } private String name() { return name; } private void reproduce() {原创 2010-11-22 17:06:00 · 690 阅读 · 0 评论 -
一些Tips
1 java puzzler 94 应该优先使用库函数提供的方法。package arkblue.javapuzzler.n94;import java.util.Arrays;import java.util.Collections;public class Shuffle { public static void shuffle(Object[] a) { Collections.shuffle(Arrays.asList(a)); }} 2 java p原创 2010-11-22 18:20:00 · 735 阅读 · 0 评论 -
RMI原理,以及CORBA和SOAP
<br />一 基本概念:<br />1. Stub(存根):当客户端要在远程对象上调用一个方法的时候,实际上调用的是代理对象上的一个普通方法,称这个代理对象为stub。这RMI的存根定义就是使用了这样一个理解:在与远程发生通讯调用时,把通讯调用的所有细节都通过对象的封装形式给隐藏在后端。客户端的stub方法构造了一个信息块,包括:远程对象的标识,被调用方法描述,参数。<br />2. Skeleton(骨架):它的内部就是真正封装了一个类的形成调用体现机制。包括我们熟知的S原创 2011-03-16 09:46:00 · 4400 阅读 · 0 评论 -
synchronized 对性能的影响
private static Object lock = new Object(); public static void main(String[] args) { for (int k = 0; k < 10; k++) { long start = System.currentTimeMillis(); for (int j = 0; j < 10000000;原创 2011-11-01 13:41:51 · 4590 阅读 · 3 评论 -
DecimalFormat和BigDecimal对格式化的性能对比
public static void main(String[] args) { long start = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { double avgDeleteDelay = Double.valueOf(DECIMAL_FRORMAT .format((do原创 2011-11-01 16:31:23 · 5488 阅读 · 0 评论 -
我经历的一些java 编程tips
1 private的域设置成final,只能通过构造函数初始化,不提供setter。这些属性是一个对象必须的属性,并且不可修改。public class Transition{ private final String name; private final Guard guard; private final State input; pri原创 2011-11-04 09:41:56 · 674 阅读 · 0 评论 -
混合类型的计算(mixed-type compution)或者隐式类型转换
1 java puzzler 5 负的十进制数可以用一个减号表示。但是16进制和8进制字面常量的最高位被置位了,那么他就是负数。 package arkblue.lang.javapuzzler.n5;public class JoyOfHex { public static void main(String[] args) { System.out.printl原创 2010-11-23 00:17:00 · 1409 阅读 · 0 评论 -
Object源码, monitor (wait pool) , Thread.sleep(), interrupt
1 每个对象都关联(associate)一个监视器(monitor),每个monitor对应一个wait pool,wait pool保存N多的调用线程,凡是调用synchronize(obj)方法的线程,如果当前已经有其他线程调用synchronize(obj)方法获取了monitor,并且还没有释放,当前线程就进入wait pool,知道有已经获得monitor的方法释放mnitor,或者调用原创 2012-07-22 17:24:25 · 1418 阅读 · 0 评论 -
Object的clone方法
/*Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression: x.clone() != xwil原创 2012-07-17 19:44:55 · 2122 阅读 · 0 评论 -
top命令找到占用CPU最高的java线程
参考 http://lxiaodao.iteye.com/blog/1413774和长源28147是java的进程号,通过jps命令查出来的top -Hp 28174 -d 1 -n 1 查出占CPU最高的线程 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND原创 2013-03-26 00:09:43 · 18248 阅读 · 0 评论 -
[转]eclipse libraries 不存在maven的依赖包时
eclipse libraries 不存在maven的依赖包时,照着下面一步步来1.项目右键-》Build Path -》 Java Build Path -》Libraries -》Add Library -》Maven Managed Dependences-》点击Next -》点击‘Maven Project settings’ , 在‘Active Maven Profiles (co...转载 2019-08-05 11:31:02 · 568 阅读 · 0 评论