
Java
文章平均质量分 69
buerc
每天进步一点点
展开
-
eclipse如何以指定JDK启动
在开发过程中,高版本的eclipse往往只能使用高版本的JDK才能启动,低版本的eclipse也只能使用低版本的JDK才能启动。但是实际情况是,有的需要用高版本的JDK,有的需要用低版本的JDK。比如我用STS进行开发,JDK环境是1.6。而我的JAVA_HOME确实对应的JDK1.6所在路径。但是后面有个新需求,需要使用JDK1.8.由于JAVA_HOME只能对应一个路径。为了不产生冲突能让ec原创 2018-01-11 14:30:23 · 25578 阅读 · 2 评论 -
java8新特性总结——StreamaAPI【一】
java8中两大最为重要的改变一个是lambda表达式,另外一个则是Stream API,Stream是java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以进行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似使用sql进行的数据库查询,也可以使用Stream API来并行执行操作。简而言之,Stream API提供了一种高效且易于使用的...原创 2018-03-30 19:15:59 · 462 阅读 · 0 评论 -
java8新特性总结——StreamaAPI【二】
Stream的终止操作:终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如:List、Integer,甚至是void 。一:查找与匹配allMatch(Predicate p)检查是否匹配所有元素anyMatch(Predicate p)检查是否至少匹配一个元素noneMatch(Predicate p)检查是否没有匹配所有元素findFirst()返回第一个元素findAny()返...原创 2018-03-30 21:20:22 · 247 阅读 · 0 评论 -
java多线程基础总结【一】volatile关键字与原子性问题
最近看尚硅谷JUC视频,看的很过瘾,就怕两天后就忘了,于是做个总结。I hear and I forget,I see and I remember,I do and I understand。为什么使用多线程?为了尽可能的使用CPU资源,也就是系统资源来提高效率,但是如果我们多线程使用不当可能会使效率更低,因为多线程会加大系统开销,而线程与线程之间又涉及到系统资源的调度,上下文的切换以及线程的创...原创 2018-04-01 21:55:57 · 282 阅读 · 0 评论 -
java多线程基础总结【二】CountDownLatch
CountDownLatch描述的是:一组在其他线程中的操作完成之前,它允许一个或多个线程一直等待。在API中是这样描述的:用给定的计数初始化CountDownLatch,调用countDown()方法会使计数自减,当计数达到零之前,await()方法会一直受到阻塞,直到计数为零,await之后才开始执行。计数无法被重置,只能使用一次。例子如下:package com.buerc.thread;...原创 2018-04-02 21:10:26 · 186 阅读 · 0 评论 -
java8新特性总结——lambda表达式
最近看尚硅谷java8新特性视屏,总结一下学习知识。Lambda表达式:是一个匿名函数,我们可以把Lambda理解为一段可以传递的代码(将代码像数据一样传递),可以写出更简洁更灵活的代码。作为一种更紧凑的风格,使java的表达能力得到了提升。作为我这样的小白,看名词介绍是真的看不懂,下面贴上代码强化一下理解package com.buerc.java8;import java.util.Arr...原创 2018-03-28 13:47:44 · 305 阅读 · 2 评论 -
java多线程基础总结【三】Callable和Futuer
转载https://blog.youkuaiyun.com/ghsau/article/details/7451464Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例...转载 2018-04-03 20:41:50 · 332 阅读 · 0 评论 -
java多线程基础总结【四】虚假唤醒
我们先来看一组例子package com.buerc.thread;public class TesProducerAndConsumer { public static void main(String[] args) { Clerk clerk=new Clerk(); Producer producer=new Producer(clerk); Consumer co...原创 2018-04-03 21:56:42 · 3950 阅读 · 5 评论 -
java8新特性总结——lambda表达式之方法引用与构造器引用
我们先来看一下Java8 内置的四大核心函数式接口结构我们知道lambda表达式需要函数式接口的支持,即只有一个抽象方法的接口的支持。使用Lambda表达式语法即可优雅的完成功能。现在介绍Lambda表达式的另外的表现形式。还是先贴一段代码强化一下理解。package com.atguigu.test;import java.util.Comparator;import java.util....原创 2018-03-28 20:41:12 · 409 阅读 · 0 评论 -
java多线程基础总结【五】Lock和Condition线程同步通信
我们知道用于解决多线程同步安全问题的方式有synchronized:隐式锁1.同步代码块2.同步方法 jdk 1.5 后同步锁 Lock,是一个显示锁,需要通过 lock() 方法上锁,必须通过 unlock() 方法进行释放锁下面我们介绍Lock同步以及Condition的线程通信package com.buerc.thread;import java.util.concurrent.loc...原创 2018-04-06 14:11:37 · 280 阅读 · 0 评论 -
NIO之Buffer
最近看尚硅谷NIO视频,学习后记录一下。Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Java NIO 与IO 的主要区别:IONIO面向流(Stream Oriente...原创 2018-04-06 21:06:58 · 198 阅读 · 0 评论 -
[转]java集合
转载https://www.cnblogs.com/leeplogs/p/5891861.html JAVA集合类汇总 一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象...转载 2018-03-19 22:06:28 · 172 阅读 · 0 评论 -
java的三种代理模式
转载 https://www.cnblogs.com/cenyu/p/6289209.html代理模式:代理模式是一种设计模式,提供了对目标对象另外的访问方式,这样做的好处是,可以在目标对象实现的基础上,增强额外的功能,即扩展目标对象的功能。这里使用到编程对象中的一种思想:不要随意去修改别人已经写好的代码或者方法,如果需要修改,可以通过代理的方式来扩展该方法。举个例子来说明代理的作用:假设我们想邀...转载 2018-03-19 21:04:26 · 163 阅读 · 0 评论 -
关于XML字符串中出现非法字符导致解析出错的问题
最近调用接口报大量错误org.apache.cxf.interceptor.Fault: Marshalling Error: Invalid white space character (0x2) in text to output (in xml 1.1, could output as a character entity),根据提示可知出现了非法字符导致解析出错。查看日志果真如此,由于原创 2018-01-04 16:15:32 · 5156 阅读 · 0 评论 -
[转]Java Math的 floor,round和ceil的总结
转载http://blog.youkuaiyun.com/foart/article/details/4295645floor,ceil返回值类型double,round返回值类型long floor 返回不大于的最大整数 round 则是4舍5入的计算,入的时候是到大于它的整数round方法,它表示“四舍五入”,算法为Ma...转载 2018-03-18 15:10:09 · 229 阅读 · 0 评论 -
Java 中返回yyyy-MM-dd类型的Date
1.获取当天日期 @Test public void test() { Date date=new java.sql.Date(System.currentTimeMillis()); System.out.println(date); }2.获取指定日期 @Test public void test() { String str="2018-03-18"; SimpleDa...原创 2018-03-18 15:50:40 · 1486 阅读 · 0 评论 -
[转]java8种基本数据类型
转载http://blog.youkuaiyun.com/fysuccess/article/details/40656761 后又看到讨论boolean的长度问题 https://www.cnblogs.com/wangtianze/p/6690665.html?utm_source=itdadao&utm_medium=referral ...转载 2018-03-18 17:57:01 · 237 阅读 · 0 评论 -
原码、反码、补码
进制对于整数有四种表示方式1.二进制:0,1,满2进1以0b或0B开头2.十进制:0-9,满10进13.八进制:0-7,满8进1。以数字0开头表示4.十六进制:0-9以及A-F,满16进1.以0x或0X开头表示,此处的a-f不区分大小写所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取...原创 2018-03-18 18:45:56 · 293 阅读 · 0 评论 -
[转]java单例模式的几种实现
转载1.懒汉(线程不安全)public class Singleton { private static Singleton singleton=null; private Singleton() {} public static Singleton getInstance() { if(singleton==null) { singleton=new Singleton...转载 2018-03-18 20:51:40 · 147 阅读 · 0 评论 -
工厂模式
工厂模式的主要功能是帮我们把对象的实例化部分抽取出来,优化了系统架构增强了系统的可扩展性。1.简单工厂:通过接受不同的参数,返回不同的对象实例(不修改代码是不能扩展的)public interface Phone { void call();}public class ApplePhone implements Phone { @Override public void call() {...原创 2018-03-18 22:53:40 · 188 阅读 · 0 评论 -
Java IO流基础总结【一】
IO流通过数据流、序列化和文件系统提供系统输入和输出。流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。就如水流、电流一样,从一处通往另外一处。java IO流体系java.io.File:java程序中的此类的一个对象,...原创 2018-03-22 19:55:24 · 359 阅读 · 0 评论 -
Java IO流基础总结【二】
几个常用的处理流ByteArrayInputStream和ByteArrayOutputStream字节数组输入流在内存中创建一个字节数组缓冲区,从输入流读取的数据保存在该字节数组缓冲区中。字节数组输出流在内存中创建一个字节数组缓冲区,所有发送到输出流的数据保存在该字节数组缓冲区中。package com.buerc.file;import java.io.ByteArrayInputStre...原创 2018-03-23 20:30:15 · 177 阅读 · 0 评论 -
NIO之Channel
Channel 表示IO 源与目标打开的连接。Channel 类似于传统的“流”。只不过Channel 本身不能直接访问数据,Channel 只能与Buffer 进行交互。 通道的主要实现类 java.nio.channels.Channel 接口: |--FileChannel |--SocketChannel |--ServerSocketChannel |--...原创 2018-04-06 22:32:26 · 282 阅读 · 0 评论