
java
IT小菜鸟成长记
做一个勤奋的小菜鸡
展开
-
java基础
package com.yhw.test;import java.util.Scanner;/** * * @author Administrator 以1980年1月1日(星期2)为开始日期 */public class ChineseWeek { public static void main(String[] args) { System.out.printl原创 2018-01-17 22:59:40 · 155 阅读 · 0 评论 -
JAVA中的并发工具类 CountDownLatch,CyclicBarrier
CountDownLatch 允许一个或者多个线程等待其他线程完成操作。 理解 CountDownLatch 构造函数中传 int N,需要执行countDown() N次后 await()方法组织的才能继续执行。 底部使用了乐观锁compareAndSet(CAS) 贴代码:package ...原创 2019-07-05 14:32:52 · 152 阅读 · 0 评论 -
JAVA中的线程池
java中的线程池的运用场景最多的并发框架,几乎所有的需要异步或者并发执行任务的程序都可以使用线程池。在并发过程中,合理的利用线程池可以带来3个好处1.减低资源消耗。通过重复利用已创建的线程减低线程创建或者销毁造成的消耗。 2.提高响应速度。当任务到达时,任务可以不需要等待线程的创建就直接执行。 3.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会减低系统的...原创 2019-07-08 16:17:14 · 190 阅读 · 0 评论 -
并发Queue
Queue在并发队列上JDK提供2套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue接口。ConcurrentLinkedQueue是一个适用于高并发产经下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常Co...原创 2019-07-02 11:35:44 · 232 阅读 · 0 评论 -
Copy-on-Wirte
Copy-on-Write简称:COW,是一种程序设计中的优化策略。JDK里的concurrent包下 COW容器有两种CopyOnWriteArrayList,CopyOnWriteArraySet。概念:CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行copy,复制出一个新的容器,然后在...原创 2019-06-14 18:04:38 · 289 阅读 · 0 评论 -
并发类容器的概念
JDK5.0以后提供了多种并发类容器来替代同步容器从而改善性能。同步类容器的状态都是串行化。他们虽然实现了线程安全,但是严重降低了并发性,在多线程的环境时,严重的降低了应用程序的吞吐量。ConcurrentMap 接口: ConcurrentHashMap ConcurrentShipListMap (支持并发排序功能)1.Conc...原创 2019-06-14 16:40:16 · 155 阅读 · 0 评论 -
线程的三大特性
1.原子性即一个操作或者多个操作,要么全部执行的过程中不会被任何因素打断,要么不执行。案例:银行转账问题;我们在操作数据也是如此:比如i++;i+=1;这些代码在java中不具备原子性,但是在多线程中肯定会出现问题,所以我们必须要用同步或者lock这些东西来确保特性;2.可见性(volatile)当多个线程访问同一个变量的时候,一个线程改变了这个变量的值,其他线程能改立即看到值...原创 2019-01-27 02:38:52 · 2798 阅读 · 0 评论 -
线程的停止
1.stop() 方法 jdk1.5的时候就已经废弃。stop()已弃用 这种方法本质上是不安全的。 使用Thread.stop停止线程可以解锁所有已锁定的监视器(由于未ThreadDeath ThreadDeath异常在堆栈中ThreadDeath的自然结果)。 如果先前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将变得对其他线程可见,可能导致任意行为...原创 2019-01-26 12:28:37 · 130 阅读 · 0 评论 -
线程安全问题
线程安全是指: 在多个线程进行的情况下对全局变量或静态变量进行写的操作的时候出现的数据上的问题,就是线程安全的问题,在读的时候不会出现线程的问题;关键字:synchronized; 注意事项: 在线程中run 方法运行的时候 synchronized修饰代码的时候一定要放在我们修饰的代码地方,如果将整个run 方法进行修饰,那么线程变成了单例模式(单线程模式);同步代码块...原创 2019-01-20 12:05:57 · 160 阅读 · 0 评论 -
多线程Thread
关键字 Thread runnable currentThread run start sleep yeid 线程的生命周期1.新建线程2.线程启动3.线程运行4.线程阻塞,5.线程结束一、线程的创建1.第一种继承: package com.yhw.demo;/** * 一.线程的概述 * 进程:运行的任务通常对应一个 进程; * 程序运行的时...原创 2019-01-20 00:46:46 · 121 阅读 · 0 评论 -
mybatis page2
这节主要是打通mybatis整个流程原创 2018-10-25 15:43:36 · 162 阅读 · 0 评论 -
mybatis ------day1
一直做前端,平时偶尔会写点java框架但是从来没有去系统学习过javaEE最近想系统的学习哈javaEE的框架-------------------------------------------------------------------mybatis学习 我们主要用它 实现:1.java中定义的类能持久化的保存到数据库中进行对应 ---JPA JPA是Ja...原创 2018-10-25 15:17:58 · 213 阅读 · 1 评论 -
软件生命周期
1): 问题的定义以及规划:此阶段是软件开发和需求方共同的讨论,主要确定软件的开发目标以及可行性;2:需求分析: 对软件需要的实现的各功能进行详细的分析;3:软件设计:需求分析的结果,把整个软件系统划分多个模块,设计出原型界面图;4:程序编码: 把软件设计的结果转化为计算机可以运行的程序代码。在程序编码中必须要制定统一,符合标准的编码规范,以确保程序的可读性,易维护性,提高程序的运行效...原创 2018-08-23 21:20:08 · 1816 阅读 · 0 评论 -
java swing
two day Java swing 学习1:方法重载2:JFrame 类的简单实用package com.yhw.out;import javax.swing.JFrame;public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoF原创 2018-01-18 23:07:35 · 196 阅读 · 0 评论 -
JAVA中的并发工具类 Exchanger多线程数据交换
Exchanger用于进行线程间的数据交换,它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据 两个线程通过exchange方法进行交换数据,如果一个线程先执行exchange方法,他会一直等待第二个线程也执行exchange方法 当两个线程都达到同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方. Exchange可以用于遗传算法,遗传算法里需要选出两个人作为交...原创 2019-07-06 09:24:23 · 226 阅读 · 0 评论