Fork me on GitHub

随笔分类 -  Java基础

摘要:添加以下配置: Properties props = new Properties(); props.setProperty("mail.imap.partialfetch", "false"); props.setProperty("mail.imaps.partialfetch", "false 阅读全文
posted @ 2018-12-26 23:28 郑斌blog 阅读(1697) 评论(0) 推荐(0) 编辑
摘要:函数式接口: 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 Lambda 表达式。 Function 函数 Function 与 BiFunction 输入一个或多个参数,也可以规定返回值类型,并执行一 阅读全文
posted @ 2018-08-21 20:08 郑斌blog 阅读(4420) 评论(0) 推荐(0) 编辑
摘要:源码如下: 输出: 阅读全文
posted @ 2018-07-20 11:34 郑斌blog 阅读(505) 评论(0) 推荐(0) 编辑
摘要:增强的 Future:CompletableFuture CompletableFuture(它实现了 Future 接口) 和 Future 一样,可以作为函数调用的契约。当你向它请求获得结果,如果数据还没有准备好,请求线程就会等待,直到数据准备好后返回。 异步执行 执行结果: 以上代码中,do 阅读全文
posted @ 2018-05-06 22:28 郑斌blog 阅读(1432) 评论(0) 推荐(0) 编辑
摘要:ThreadPoolExecutor 简介 ThreadPoolExecutor 是线程池类。 通俗的讲,它是一个存放一定数量线程的线程集合。线程池允许多个线程同时运行,同时运行的线程数量就是这个线程池的容量,也会有一部分线程出现阻塞,线程池此时也会通过响应的拒绝策略来处理。 构造函数参数说明 co 阅读全文
posted @ 2017-10-29 15:37 郑斌blog 阅读(906) 评论(0) 推荐(2) 编辑
摘要:什么是线程池? 为了避免系统频繁地创建和销毁线程,我们可以让创建的线程进行复用。用线程时从线程池中获取,用完以后不销毁线程,而是归还给线程池。 JDK 对线程池的支持 为了更好的控制多线程,JDK 提供了一套线程池框架,结构如下图所示 它们都在 java.util.concurrent 包中。 Ex 阅读全文
posted @ 2017-10-29 15:02 郑斌blog 阅读(815) 评论(0) 推荐(0) 编辑
摘要:前言 在 Java 开发中,很多时候需要将两个属性基本相同的对象进行属性复制,比如 DO 转 VO等等。 本文主要介绍自己实现的简易拷贝工具类与 Spring 提供的属性拷贝的对比。 Spring 提供的属性拷贝 在 Spring 中直接调用 BeanUtils.copyProperties();即 阅读全文
posted @ 2017-08-20 22:15 郑斌blog 阅读(534) 评论(0) 推荐(0) 编辑
摘要:场景 下订单时,将生成一个订单和对应的多个订单详情,即一个 order 对象和多个 orderinfo 对象。 多个 orderinfo 对象在落库时,DAO 层向上层调用的接口入参是 List<OrderInfo>,那么接口的实现就需要将 List<OrderInfo> 转为一条完整的 SQL 语 阅读全文
posted @ 2017-05-15 12:37 郑斌blog 阅读(3578) 评论(0) 推荐(0) 编辑
摘要:目的 为了方便使用 DbUtils,在插入数据时需要传入含有占位符的 SQL 语句和对应占位符的值(数组),封装代码如下: 调用该方法需要将JavaBean转化成Map<Key, Value>的形式,那不如提供一个JavaBean与Map的装换工具类。 Mybatis 源码中应该也有这种转换过程。 阅读全文
posted @ 2017-04-24 15:56 郑斌blog 阅读(790) 评论(0) 推荐(0) 编辑
摘要:简介 什么是代理模式? 代理模式就是多一个代理类出来,代替原对象进行一些操作。比如说租房的中介、打官司的律师、旅行社,他们可以代替我们做一些事情,这就是代理。 代理模式的应用场景: 如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:1. 修改原有的方法来做到改进。但这样违反了“对扩 阅读全文
posted @ 2017-03-07 12:03 郑斌blog 阅读(1231) 评论(1) 推荐(2) 编辑
摘要:简介 Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的notifyAll()方法。 不同的是,Object中的wait() 阅读全文
posted @ 2017-02-20 19:15 郑斌blog 阅读(7617) 评论(0) 推荐(1) 编辑
摘要:摘要 JDK1.8相较于1.7对HashMap做了很大的优化,比如加入了新数据结构红黑树、Hash算法的优化和扩容的优化。 本篇结合这些区别,探索HashMap的结构实现和功能原理。 存储结构-字段 从数据结构来看,HashMap是数组+链表+红黑树实现的,如图所示: HashMap中重要的几个属性 阅读全文
posted @ 2017-02-10 22:03 郑斌blog 阅读(903) 评论(0) 推荐(0) 编辑
摘要:简述: ArrayList可以理解为动态数组,与Java中的数组相比,它的容量能动态增长。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组中,因此最好能给出数组大小的预估值; 容量大小也可以在程序中通过ensureCapacity(int minCapacity)方法 阅读全文
posted @ 2017-02-08 17:02 郑斌blog 阅读(669) 评论(0) 推荐(0) 编辑
摘要:数据结构 LinkedList是基于链表结构实现,所以在LinkedList类中包含了first和last两个指针(类型为Node)。Node中包含了对prev节点、next节点的引用,这样就构成了双向的链表。 存储 1.add(E e)方法 该方法首先声明一个新Node l,将链表的最后一个Nod 阅读全文
posted @ 2017-02-08 14:20 郑斌blog 阅读(4461) 评论(0) 推荐(0) 编辑
摘要:简述 Java中Socket分为普通Socket和NioSocket两种,这里介绍Socket。 我们可以把Socket比作两个城市间的交通工具,有了它可以在两城之间来回穿梭,交通工具有很多种,每种交通工具也有相应的交通规则。Socket也一样,也有多种。大多情况下使用的是TCP/IP的流套接字,它 阅读全文
posted @ 2017-02-05 16:17 郑斌blog 阅读(536) 评论(0) 推荐(0) 编辑
摘要:絮叨 Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 定义:守护线程(aka:服务线程),在没有用户线程可服务时会自动离开。 优先级:守护线程的优先级较低,用于为系统中的其它对象和线程提供服务。 用户线程即运行在前台的线程,而守护线程是运行在后台的线 阅读全文
posted @ 2016-10-18 11:59 郑斌blog 阅读(1457) 评论(0) 推荐(0) 编辑
摘要:了解注解 在编写代码时,除了源程序以外,我们还会使用Javadoc标签对类、方法或成员变量进行注解,以便使用Javadoc工具生成和源代码配套的Javadoc文档。 /** * 重写toString * @param id * @param name * @return */ public Stri 阅读全文
posted @ 2016-10-16 12:17 郑斌blog 阅读(675) 评论(1) 推荐(0) 编辑
摘要:Timer 使用java.util.Timer是最简单的一种实现任务调度的方法,直接上栗子🌰: 使用 Timer 实现任务调度的核心类是 Timer 和 TimerTask。其中 Timer 负责设定 TimerTask 的起始与间隔执行时间。使用者只需要创建一个 TimerTask 的继承类,实 阅读全文
posted @ 2016-09-11 16:13 郑斌blog 阅读(912) 评论(1) 推荐(0) 编辑
摘要:简介 最常用的一个。 与Linux中的查看Java进程命令功能相同: jps与这个命令的区别在于,jps仅仅过滤出Java本身的进程以及运行的引导类,就是引导main方法所在的类。 使用 -q 仅输出VM标识符,不包括class name,jar name,arguments in main met 阅读全文
posted @ 2016-08-30 23:58 郑斌blog 阅读(2458) 评论(0) 推荐(0) 编辑
摘要:被QA人员一眼指出来的问题,唉,好丢人 上栗子🌰 如何判断一个集合是空? 运行后会输出什么? 显然第53行会报运行时错误:java.lang.NullPointerException 为什么呢? 首先分析第51行与第52行的区别: 51行:仅声明一个stringList1的引用 52行:在内存中开 阅读全文
posted @ 2016-08-28 00:03 郑斌blog 阅读(883) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示