随笔分类 -  Java

1 2 下一页

HashMap几个需要注意的知识点
摘要:HashMap简介 HashMap 是java集合框架的一部分。 key value都允许null值 (除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同) 不保证映射的顺序,先存入的数据取出来的时候不一定是先取出的 迭代 collection 视图所需的时间与 阅读全文

posted @ 2019-01-17 19:38 猫咪大王 阅读(1057) 评论(0) 推荐(0)

CountDownLatch 源码解析—— countDown()
摘要:上一篇文章从源码层面说了一下CountDownLatch 中 await() 的原理。这篇文章说一下countDown() 。 通过构造器 CountDownLatch end = new CountDownLatch(2); state 被设置为2,所以c == 2,nextc = 2-1, 然后 阅读全文

posted @ 2018-04-01 13:56 猫咪大王 阅读(541) 评论(0) 推荐(1)

CountDownLatch 源码解析—— await()
摘要:上一篇文章说了一下CountDownLatch的使用方法。这篇文章就从源码层面说一下await() 的原理。 我们已经知道await 能够让当前线程处于阻塞状态,直到锁存器计数为零(或者线程中断)。 下面是它的源码。 sync 是CountDownLatch的内部类。下面是它的定义。 它继承了Abs 阅读全文

posted @ 2018-03-31 18:12 猫咪大王 阅读(1054) 评论(0) 推荐(1)

自定义ArrayList
摘要:自定义实现ArrayList很简单,只需要明白下面几点 1、ArrayList 底层是由数组组成的 2、数组有容量限制,但是ArrayList并没有(实际上也有,Integer.MAX_VALUE)。在增加数据的时候做好扩容 3、移除数组中的某一个数据要怎么做 下面是我自定义的ArrayList。基 阅读全文

posted @ 2018-03-15 16:59 猫咪大王 阅读(444) 评论(1) 推荐(0)

CountDownLatch 使用说明
摘要:CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直到在其他线程中一组操作执行完成。 CountDownLatch的用法非常简单,下面的例子也是我在网上看到的,十分贴切,这里就贴出来 下面是运行结果 可以看到 通过CountDown 阅读全文

posted @ 2018-03-15 10:49 猫咪大王 阅读(39905) 评论(5) 推荐(7)

Java 自定义实现链表
摘要:自定义实现链表很简单,只需要明白链表是什么样子的数据结构。 下图表示一种单向列表。其中指针first指向队头,last指向队尾,curr指向当前读的数据。 下面是我的实现代码,很简单,明白上述结构后,关键是构造一个内部类,里面包含一个指向下一个元素的对象(指向下一个元素的指针) 实践一下,看能不能使 阅读全文

posted @ 2018-03-09 17:59 猫咪大王 阅读(3073) 评论(1) 推荐(0)

利用递归方法求5!。
摘要:/** * 利用递归方法求5!。 */ public class Test0309 { public static void main(String[] args){ System.out.println(new Test0309().getNum(5)); } public int getNum(int n){ int res... 阅读全文

posted @ 2018-03-09 16:31 猫咪大王 阅读(2791) 评论(0) 推荐(0)

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
摘要:经典的问题。 我的想法是使用队列实现,首先初始化,然后通过两个步骤筛选出需要的数据: 1、挑选报数为3的数据,不加入队列 2、将挑选后的数据重新排序(重新报数) 下面是我的代码 阅读全文

posted @ 2018-03-09 15:58 猫咪大王 阅读(488) 评论(0) 推荐(0)

field.setAccessible(true) 简介
摘要:今天查看别人写的代码时,发现这样一句代码,顿时来了兴趣。 需要注意setAccessible 并不是在Field中的,而是在AccessibleObject中。 下面是AccessibleObject的解释: 意思是 AccessibleObject 类是 Field Method Construc 阅读全文

posted @ 2018-02-23 18:05 猫咪大王 阅读(12192) 评论(0) 推荐(1)

【工具】获取pojo类属性,并写入表格
摘要:1、添加依赖 2、java代码 阅读全文

posted @ 2017-12-10 17:24 猫咪大王 阅读(669) 评论(0) 推荐(0)

【工具】往制定路径写入指定文件
摘要:在公司做事的时候突然有这样一个需求,就是对项目中每个含有java文件的包,添加一个package.html文件。 我们公司的项目是以微服务为主,几个微服务下来,不知道有多少包,于是就随手写了一个小工具,作用是往指定路径添加指定文件。 代码如下 阅读全文

posted @ 2017-12-10 16:53 猫咪大王 阅读(590) 评论(0) 推荐(0)

Servlet的一点小结
摘要:1、什么是servlet servlet是一个Java applet,一个帮助程序。用于帮助浏览器从服务器中获取资源。浏览器-servlet-服务器三者的关系如图所示。 2、servlet的生命周期 servlet的生命周期分为三个阶段:init > service > destroy init : 阅读全文

posted @ 2017-11-19 15:33 猫咪大王 阅读(115) 评论(0) 推荐(0)

【定时任务】Timer
摘要:Java原生api Timer类就可以实现简单的定时任务。下面将简单介绍一下Timer。 一、使用 Timer 实现定时任务 具体代码如下。 可以看到我们主要是分三步进行的 1、new Timer() 创建定时器 2、new TimerTask() 创建任务。这里是通过继承TimerTask类实现的 阅读全文

posted @ 2017-11-12 18:13 猫咪大王 阅读(363) 评论(0) 推荐(0)

Mybatis使用入门
摘要:一、Mybatis简介 1、传统JDBC的不足 我们首先看一下JDBC的一般操作流程。比如,我想从user表中获取根据name获取数据,下面是传统JDBC代码: 下面是最后运行结果: 我们在使用传统的JDBC连接数据库时候需要做以下几件事: 1、注册驱动和数据库信息(用户名和密码),连接数据库,获取 阅读全文

posted @ 2017-09-20 18:08 猫咪大王 阅读(271) 评论(0) 推荐(0)

Lock接口简介
摘要:在Java多线程编程中,我们经常使用synchronized关键字来实现同步,控制多线程对变量的访问,来避免并发问题。 但是有的时候,synchronized关键字会显得过于沉重,不够灵活。synchronized 方法或语句的使用提供了对与每个对象相关的隐式监视器锁的访问,但却强制所有锁获取和释放 阅读全文

posted @ 2017-08-17 15:15 猫咪大王 阅读(2286) 评论(0) 推荐(0)

用三个线程循环输出ABC
摘要:前两天看Java吧有人求助这个问题。想了想并不是很难。今天就顺手实现了一下。 我自己想到的有两种方法,一个是使用synchronized,一个是使用lock。 一、synchronized 这个方法的关键是synchronized关键字的位置。把它放在while判断之下就OK了。如果把synchro 阅读全文

posted @ 2017-08-16 21:26 猫咪大王 阅读(1275) 评论(0) 推荐(0)

TCP/IP四层模型
摘要:网络的分层模型有很多种,最常见的就是OSI的七层模型和TCP/IP的四层模型。 这里主要说一下TCP/IP的四层模型。TCP/IP的四层模型如下图所示: 一、应用层 向用户传送数据的层称为 应用层(application layer)。 传输层、网际层和主机网络层共同定义了数据如何从一台计算机传输到 阅读全文

posted @ 2017-08-15 19:07 猫咪大王 阅读(1054) 评论(0) 推荐(0)

Java多线程编程——生产者-消费者模式(1)
摘要:生产者-消费者模式在生活中非常常见。就拿我们去餐馆吃饭为例。我们会遇到以下两种情况: 1、厨师-客人 如下图所示,生产者、消费者直接进行交互。 生产者生产出产品后,通知消费者;消费者消费后,通知生产者。 以餐厅为例,厨师做好了一碗面,大声招呼:“13号,你的面好了!”;食客吃完了面,大声招呼:“师傅 阅读全文

posted @ 2017-08-11 10:40 猫咪大王 阅读(386) 评论(0) 推荐(0)

Java多线程编程——wait()和notify()、notifyAll()
摘要:1、源码 wait() notify() notifyAll()都是Object类中方法。源码如下所示: 可以看到它们都是final native修饰的方法。 2、使用条件 首先我们需要明确的一点是wait() notify() notifyAll()都是需要在线程拥有对象锁的情况下使用。 在没有对 阅读全文

posted @ 2017-08-02 18:28 猫咪大王 阅读(231) 评论(0) 推荐(0)

Java多线程编程——volatile关键字
摘要:(本篇主要内容摘自《Java多线程编程核心技术》) volatile关键字的主要作用是保证线程之间变量的可见性。 将JVM设置为-server时就会出现下面状况 可以看到 System.out.println("停止运行了!"); 没有得到运行,也就是说isRunning 一直是true的状态。 r 阅读全文

posted @ 2017-08-01 17:18 猫咪大王 阅读(207) 评论(0) 推荐(0)

1 2 下一页