Java
文章平均质量分 77
lmy86263
这个作者很懒,什么都没留下…
展开
-
Java开发人员最常犯的10个错误
一、把数组转成ArrayList为了将数组转换为ArrayList,开发者经常会这样做:List list = Arrays.asList(arr);使用Arrays.asList()方法可以得到一个ArrayList,但是得到这个ArrayList其实是定义在Arrays类中的一个私有的静态内部类。这个类虽然和java.util.ArrayList同名,但是并不是同一个类。java.ut转载 2016-04-02 19:53:00 · 932 阅读 · 0 评论 -
Java中InputStream和String之间的转换方法
在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转换的各种方法,包括JDK原生提供的,还有一些外部依赖提供的。原创 2017-03-05 22:09:34 · 109248 阅读 · 7 评论 -
Java 运行时动态编译源代码原理和实现
编译,一般来说就是将源代码转换成机器码的过程,比如在C语言中中,将C语言源代码编译成a.out,,但是在Java中的理解可能有点不同,编译指的是将java 源代码转换成class字节码的过程,而不是真正的机器码,这是因为中间隔着一个JVM。虽然对于编译的理解不同,但是编译的过程基本上都是相同的。原创 2017-03-02 23:08:37 · 21999 阅读 · 5 评论 -
Java正则表达式学习笔记
之前有个笑话说程序员最不喜欢的就是写正则表达式,不知道别人是不是,反正我是,一直对这个东西掌握不了,之前看了一遍马士兵的教程,所以在这里总结一下。在Java中,使用正则表达式涉及到以下4个类:原创 2016-04-09 21:11:20 · 1431 阅读 · 0 评论 -
关于Java 中Enum 的全方位剖析
如果你受够了如下这种写法,那么这篇文章正好适合你:setWeek(1);// ...private static final int MONDAY = 1;private static final int TUESDAY = 2;// ... setWeek(MONDAY);这种方法有如下几个缺点:不会进行安全检查,也就是说当传递的参数是100,它也不会报出编译错误;原创 2016-11-30 00:04:30 · 728 阅读 · 0 评论 -
在Java8的foreach()中使用return/break/continue
今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通for循环中的效果时,可以使用return来达到,也就是说如果你在一个方法的lambda表达式中使用原创 2016-04-04 18:32:11 · 238411 阅读 · 19 评论 -
Java并发实践:volatile的原理和使用
写这篇文章的缘由是因为之前师弟的一个问题,想要的实现停止线程执行的功能。【实际需求】点击一个按钮开始执行一个长期运行的任务,然后点击另外一个按钮则任务停止执行。【问题分析】看到这个问题的第一个想法就是通过线程去运行该任务,然后停止该线程,这可能是最直接的解决办法。但是如果强制一个正在运行的线程会将程序的运行置于一个不确定的状态,虽然知道这一点,但是当时我没想到其他办法,写到这里就感慨自己的学艺不精啊原创 2017-01-15 15:32:18 · 557 阅读 · 0 评论 -
Java并发实践: 显式锁之Condition使用
最近的开发遇到了多线程的问题,由于之前总是使用Synchronized这种方式,让人难以理解不说,而且这个字还不好记,真是反人类,最重要的是这种方式是Java 1.5 之前的方法,已经有很多人(我没统计过)证明这种方式在性能和使用上存在问题,关键是如果继续使用这种老技术,会被认为是不思进取的人(自己的看法,哈哈)。原创 2017-01-06 20:38:30 · 1544 阅读 · 0 评论 -
关于Java中的注解类型深入剖析
关于注解的使用,用过应该java的应该都不陌生,最著名的莫过于@Override,所以这篇文章主要是讲讲注解背后的那些事情,至于普通的使用等可以参考下面的相关文章。一、注解的基本内容做什么事之前我们首先要搞清为什么?那么注解的出现是为什么?如果你受够了Spring和Hibernate的配置文件中繁琐的配置,因为写错一个字母整个程序都运行不起来,那么你确实有理由去了解注解,它可以:原创 2016-12-22 22:55:32 · 641 阅读 · 0 评论 -
深入了解Java中的异常
虽然在编译时发现错误是最理想的情况,但是这种情况并不是很容易产生,大多数的错误是在运行期间发生的,Java中的异常就是为了在运行时能够检查程序的错误。通过异常,我们能够简化错误代码处理的逻辑,如果不使用异常,我们就要检查特定的错误,这样就会出现很多的if...else...语句,如果使用了异常机制则可以不必在方法实现中进行检查,而是通过异常机制进行捕获,这样可以将方法实现的具体逻辑和遇到问题时的解决原创 2016-12-16 22:41:11 · 1105 阅读 · 0 评论 -
通过Socket实现Http中Get请求
对于网络通信这部分,一直搞不清楚网络模型中传输层协议和应用层协议是怎么进行交互的,于是想通过直接使用TCP协议实现http请求的发送,所以这里通过Socket编程来完成这项工作,在Java中还可以使用原生的HttpURLConnection或者Apache中的HttpClient完成Http请求的发送,但是这种方式已经是对Socket进行封装,对我们理解Http的原理没有帮助。原创 2016-11-23 20:28:02 · 4675 阅读 · 0 评论 -
org.xml.sax.SAXParseException: Premature end of file
当使用XML的schema去验证XML文档的时候曝出如题的错误,验证代码如下:public static boolean validateXml(String xsd, InputStream input){ boolean flag = true; SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_原创 2016-12-05 22:26:49 · 37944 阅读 · 1 评论 -
Java调用批处理或可执行文件
转自:http://www.blogjava.net/supercrsky/articles/176525.html用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。转载 2016-10-26 21:01:42 · 1371 阅读 · 0 评论 -
从懵逼到恍然大悟之Java中RMI的使用
此处讲的是Java中的RMI,而不是通用意义上的RMI,关于通用的RMI可以参考分布式之RPC的协议以及错误处理 这篇文章。一、Java RMI简介Java RMI用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。原创 2017-05-21 10:43:34 · 72733 阅读 · 12 评论