![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 72
记忆力不好
这个作者很懒,什么都没留下…
展开
-
java 调试工具,命令行工具,性能工具,可视化工具
JDK的bin包下除了我们常用javac,java外,还提供了许多给开发人员使用的命令行工具,如图(JDK1.7):1.jps:虚拟机进程查看工具类似于linux下的ps命令,查看进程的信息,。-l: 输出主类的全名;-m: 输出程序的命令行输入参数;-v: 输出JVM参启动时显示设定的参数。-q:只输出id2.jstat:虚原创 2016-04-23 23:44:41 · 3681 阅读 · 0 评论 -
Java 自动装箱和自动拆箱注意的问题
自动装箱和自动拆箱不是什么复杂的技术,自动装箱就是基本类型(int,long)数据可以先自动转换为对应的封装类(Integer,Long)对象,而自动拆箱相反。在本文中,笔者向大家介绍下Java中一个非常重要也非常有趣的特性,就是自动装箱与拆箱,并从源码中解读自动装箱与拆箱的原理,同时这种特性也留有一个陷阱。开发者如果不注意,就会很容易跌入这个陷阱。自动装箱(Autobox转载 2016-06-15 17:00:48 · 3952 阅读 · 0 评论 -
JDK 1.8新特性Lambda入门
网上关于java lambda的例子很多,但是这些五花八门的例子很不常见不常用,最后导致初学者望而却步,其实我们抓住lambda的本质之后,会发现lambda还是很好理解的。毕竟,java8设计lambda的初衷是给开发者提供便利,而不是制造障碍。lambda表达式本质是匿名方法,下面是一些lambda表达式:(int x, int y) -> x + y() -> 42原创 2016-07-13 14:04:45 · 27398 阅读 · 5 评论 -
命令式编程vs声明式编程
英文原文:Imperative vs Declarative 先统一一下概念,我们有两种编程方式:命令式和声明式。 我们可以像下面这样定义它们之间的不同:命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。声明式编程和命令式编程的代码例子举个简单原创 2016-07-13 15:08:32 · 4710 阅读 · 1 评论 -
Java8初体验(一)lambda表达式语法
转自http://ifeve.com/lambda/本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性—lambda表达式。java8的安装工欲善其器必先利其器,首先安装JDK8。过原创 2016-07-13 15:19:50 · 1812 阅读 · 0 评论 -
Java8初体验(二)Stream语法详解
转自:http://ifeve.com/stream/Java8初体验(二)Stream语法详解感谢同事【天锦】的投稿。投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子。这些Stream的例子可能让你产生疑惑,本文将会详细讲解Str原创 2016-07-13 15:38:28 · 3945 阅读 · 0 评论 -
Java 注解的作用与使用
java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation)为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。常见的作用有以下几种:1.生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;2.跟踪代码依赖性,实现替代配置文件功能原创 2016-07-23 22:21:25 · 17229 阅读 · 0 评论 -
java equals和hashcode、==、的关系,使用区别详细
java中的==、equals()、hashCode()源码分析 在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。1. == java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码:1 public class ComAddr{2 public static void main(String[] args)转载 2016-04-16 18:49:21 · 719 阅读 · 0 评论 -
Java工程师面试题
本文转自http://blog.csdn.net/renfufei/article/details/510105171. 如何判断一个数是2的幂。个人认为,数字转化为二进制,符号位为0,余下部分有且只有最左边一位是1,其余位都是0,才是2的幂。 原理是 乘二则向左进一位。2. 陷阱面试题:在Java中,Throwable是一个接口还是抽象类?3. Javas转载 2016-07-20 15:25:53 · 1199 阅读 · 0 评论 -
Java中Comparable与Comparator的区别
在Java中Comparable和Comparator都是对集合进行排序的,都是通过返回-1、0、1来进行交换,但是两种方式有差别。Comparable:使用集合内部元素的排序方法(compareTo)进行排序,所以内部比较的元素要实现Comparable接口。Comparator:使用外部Comparator对象的(compare方法)排序方式,所以集合需要实现Comparator接口的对象。原创 2016-08-03 13:18:49 · 1709 阅读 · 1 评论 -
leetcode 5. Longest Palindromic Substring 最长回文串
Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substri原创 2016-04-13 22:02:28 · 681 阅读 · 0 评论 -
Java String为什么是不可变类,StringBuffer与StringBuilder区别
熟悉Java的都知道String类是不可变,但String类为什么设计成不可变类,如何做到不可变没有仔细想过。String为什么设计成不可变类?1.Java字符串池的设计方式。 String s1="abc";String s2="abc"; Java通过字符串池的设计方式节省内存空间,如上面一段代码只会生成一个对象放在常量池当中。s1和s2都指向这个对象,如果Stri原创 2016-03-10 15:15:09 · 5056 阅读 · 1 评论 -
java assert断言的用法
assert关键字是在JDK1.4才被添加,用于程序的调试。用户有两种1.assert expressionexpression是逻辑运算表达式,如果expression为true,表示断言成功,程序继续执行。如果为false,会抛出AssertionError,AssertionError继承Error类,Error类与我们经常用到的Exception类都是集成于Throwable类。原创 2016-03-07 10:55:25 · 20071 阅读 · 2 评论 -
java stackoverflowerror与outofmemoryerror区别
1、stackoverflow:每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。 如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生StackOve转载 2016-04-13 16:00:54 · 10247 阅读 · 0 评论 -
Java中json的使用-7种开源库介绍与比较
有效选择七个关于Java的JSON开源类库April 4, 2014 By Constantin Marian Alin翻译:无若 (英语原文:http://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-available-today.html) 简介JSON是转载 2016-05-24 13:51:58 · 9845 阅读 · 0 评论 -
JfreeChart窗口关闭问题
使用到JFreeChart来统计信息时,当单击某个分析数据按钮后,图片显示在ApplicationFrame中,但是关闭ApplicationFrame后直接把整个应用给关闭了。 可以将extends后面的ApplicationFrame改成JFrame ,然后在构造函数中加入setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)就可以实现只原创 2016-05-03 15:46:19 · 1079 阅读 · 0 评论 -
Java Exception in thread "main" java.lang.NoClassDefFoundError问题
今天遇到了一个问题。平常我都是使用eclipse等IDE进行JAVA代码的编译和执行的。今天我想用控制台执行一个我编译好的代码。进入class文件所在的目录bin/service下执行出现C:\Users\Administrator\workspace\RMI\bin\service>java MyRemoteException in thread "main" java.lang.N原创 2016-06-01 16:33:41 · 2003 阅读 · 0 评论 -
Java RMI:rmi Connection refused to host: 127.0.0.1异常解决
又是Linux下RMI异常,不过这次是单网卡的情况,先看异常信息: Java代码 [appframe] 2012-10-09 15:20:59,217 - com.opensymphony.xwork2.DefaultActionInvocation -com.opensymphony.xwork2.DefaultActionInvocation.invokeActi转载 2016-06-01 21:02:06 · 48579 阅读 · 0 评论 -
Java RMI远程接口调用介绍与使用
相关文章: RMI(Remote Method Invocation)原理浅析 Java RMI 实现代码动态下载 stub 和 skeleton 的讲解,自己实现一个stub和skeleton程序虽然现在在分布式中RMI已经很少用到,但作为最简单的分布式应用,我们还是稍微了解一下好,这篇文章可能有我理解错误的地方,希望大家指出,谢谢。 RMI的基础是接口,RMI构架基于一个重要的原理:转载 2016-06-01 18:59:08 · 6254 阅读 · 2 评论 -
Java 的回调机制(同步与异步)
对回调很简单的理解就是a对象调用b对象方法,b对象开始执行,执行完以后,b对象又调用a对象方法,这就是回调。本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273)以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找转载 2016-06-02 20:26:07 · 1554 阅读 · 2 评论 -
Java 动态代理详解(JDK 和CGLIB,Javassist,ASM)
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规定的转载 2016-06-02 16:18:31 · 1044 阅读 · 0 评论 -
java 多线程实现方式Thread和Runnable之间差异
java中实现多线程的方式有两种,1种是继承Thread类,1种是实现Runable接口。平常我们是通过Runnable方式实现多线程,其实Thread也是实现的Runnable接口。可以查看Thread的源码。1 public class Thread implements Runnable{2 3 }通过继承Thread的方式,只需要继承Thread类,然后重写run方法,原创 2016-03-01 11:04:05 · 1200 阅读 · 0 评论 -
java sleep(),wait(),notify()函数区别
Java中的sleep()和wait()函数都可以挂起当前线程,是当前当前线程不运行,但实现方式不一样。首先sleep是Thread类的方法静态方法,必须通过Thread类调用。设置时间后,线程进入阻塞池,如果在Synchronizeed代码段中,挂起的线程不会释放对象锁。wait是Object类中的方法,调用后,线程进入对象的等待锁定池中,必须通过调用notify()才可以进入锁定池中等原创 2016-03-04 16:39:28 · 2707 阅读 · 0 评论 -
java JNI本地方法调用的使用
java 可以通过JNI调用native本地方法,实现对其它非java语言编写的接口(C,C++)的调用。在类当中只需要定义好调用的方法,加载具体实现的动态库。package studyJNIMain;public class Main {static {System.out.println(System.getProperty("java.library.path"));原创 2016-02-27 21:29:21 · 1633 阅读 · 0 评论 -
Java IO底层原理
转自:http://www.importnew.com/14111.html本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。目录缓存处理和内核vs用户空间虚拟内存内存分页面向文件转载 2016-08-11 19:50:07 · 11535 阅读 · 0 评论