自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

原创 CountDownLatch

CountDownLatch用来同步一个或多个 任务,强制他们等待由其他任务执行的一组操作完成。用法:给CountDownLatch对象设置一个初值,任何在这个对象上调用await()的方法都将阻塞,等待这个计数值为0,可以由其他线程在这个对象调用countDown()来减少这个计数值,计数值不能被重置。countDown()不会造成阻塞。示例:/** * 完成初始化

2017-05-31 22:37:10 253

原创 哲学家就餐问题

假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。哲学家就餐问题有时也用米饭和筷子而不是意大利面和餐叉来描述,因为很明显,吃米饭必须用两根筷子。哲学家从来不交谈,

2017-05-30 22:56:34 636

原创 任务间使用管道进行输入/输出

通过PipedWriter类小姑娘管道中写数据 PipedReader类允许不同任务从同一管道中读取数据,如果当前没有数据就阻塞,等待数据的到来。并且PiPedReader 类与普通I/O之间有重要的差异,可以被中断。class Sender implements Runnable{ private Random rand=new Random(47); pri

2017-05-30 22:19:26 273

原创 BlockingQueue小谈

方法:booleanadd(E e)将指定的元素插入到此队列中,如果可以立即执行此操作而不违反容量限制, true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。 booleancontains(Object o)如果此队列包含指定的元素,则返回 true 。

2017-05-29 23:05:55 256

原创 打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输

2017-05-28 16:02:33 218

原创 1到n的所有排列情况

用递归实现,可以这样考虑,n个数的所有情况是  n-1个数的所有排列情况在每种情况中从前往后依次插入第n个数构成的。具体代码如下:public class MyTest { public static List> f(int n){ List> listlist=new ArrayList; if(n==1){ List

2017-05-28 14:27:00 1377

原创 Lock和Condition对象的使用

Condition的await()方法void await() throws InterruptedException导致当前线程等到发信号或interrupted 。与此相关的锁Condition以原子方式释放,并且当前线程的线程调度目的就退出,一直处于休眠状态的四两件事发生对象 :一些其它线程调用signal()方法本Condition和当前线程碰巧被选择作

2017-05-27 22:32:36 375

原创 多线程之生产者与消费者问题

考虑这样一个饭店,他有一个厨师和一个服务生,然后服务生必须等待厨师准备好食物,当厨师准备好食物时,他会通知服务生,然后服务生上菜,然后返回继续等待。/** * 食物 */class Meal{ private final int orderNum; public Meal(int orderNum){ this.orderNum=orderNum;

2017-05-27 18:49:45 201

原创 json解析

public class MyJson { /** * 解析简单的json字符串 */ public static final String JSON_SIMPLE = "{'name':'tom','age':16}"; public static void parseJson(){ JSONObject obj = JSONObjec

2017-05-21 11:04:25 241

原创 Spring AOP环绕通知小例子

不带参数的:/** * 日志类 */public class MoocAspect { public Object around(ProceedingJoinPoint pjp){ Object obj=null; try { System.out.println("MoocAspect around 1.");

2017-05-20 18:03:08 2190

原创 Spring AOP小例子

Spring AOP可以实现在原有的业务代码中加入一些输出,不改变原来的代码,比如日志/** * 业务类 */public class AspectBiz { public void biz(){ System.out.println("AspectBiz biz."); throw new RuntimeException(); }

2017-05-20 16:55:24 202

转载 IntelliJ IDEA单元测试入门

参考文章地址地址:JUnit4单元测试入门教程                                IDEA单元测试及代码覆盖率                                                IDEA添加jar包的三种方式本文按以下顺序讲解JUnit4的使用下载jar包单元测试初体验自动生成测试类执行顺序@Test的属性代码

2017-05-17 14:02:16 416

转载 IDEA下maven项目无法提示和使用EL表达式的解决办法

一、如果JSP中无法自动提示EL表达式,比如${pageContext.request.contextPath},可在pom.xml的标签中插入以下代码dependency> groupId>javax.servletgroupId> artifactId>jsp-apiartifactId> version>2.0version> scope>

2017-05-16 19:52:39 2916 1

转载 IntellijIdea创建Maven-Struts2的web项目

Intellij IDEA 2016.2.5 创建Maven Struts2的Web项目最近在自学Java的SSH框架,因为之前使用Android Studio 开发对Intellij系列的IDE比较熟悉,而且Intellij系列的IDE确实比Eclipse要方便一些,所以还是选定Intellij IDEA作为Java后端开发的IDE。由于之前没有使用Maven构建过项目,而且St

2017-05-16 19:09:43 385

转载 IntelliJ IDEA maven库下载依赖包速度慢的问题

在pom.xml中添加maven 依赖包时,我就发现不管是否用了翻墙,下载速度都好慢,就1M的东西能下半天,很是苦恼,于是到网上搜资料,然后让我查到了。说是使用阿里的maven镜像就可以了。我于是亲自试了下,速度快的飞起!!!右键项目选中maven选项,然后选择“open settings.xml”或者 “create settings.xml”,然后把如下代码粘贴进去就可以了。重启IDE,感

2017-05-15 17:56:39 277

转载 使用IntelliJ IDEA 15和Maven创建Java Web项目

1. Maven简介    相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期。   可以通过其命令做所有相关的工作,其常用命令如下:    - mvn compile    - mvn test    - mvn clean    - mvn package    - mv

2017-05-15 15:36:21 406

原创 notify()与notifyAll()

notifyAll()调用时,并非唤醒所有的等待线程,而是当nofityAll()因某个特定锁而被调用时,只有等待这个锁的任务才会被唤醒。class Blocker{ synchronized void waitingCall(){ try { while(!Thread.interrupted()){ wai

2017-05-13 20:46:12 374

转载 idea添加其他包的方法

以JDBC-MySQL驱动包为例1、在IntelliJ IDEA中打开要添加jar包的Project2、File – Project Structure如下图  3、选择Moudules – 再选择Dependencies如下图4、选中Moudule source – 然后点击2处+号如下图5、在上图的目录中找到自己要添加的jar包“OK”即可。

2017-05-12 19:33:05 894

原创 加入tomcat包到web项目

这里添加tomcat/lib目录下的jar包

2017-05-12 18:37:09 478

原创 idea创建struts项目示例

https://jingyan.baidu.com/article/54b6b9c0f79b0c2d583b47d6.html

2017-05-12 16:56:18 607

转载 图解SQL的各种连接join

转自 http://www.nowamagic.net/librarys/veda/detail/936对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文

2017-05-08 16:53:08 251

原创 一些常用的流

FileInputStream构造方法FileInputStream(File file) 通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。  FileInputStream(FileDescriptor fdObj) 创建 FileInputStream通过使用文件描述符 fdObj ,其表示在文件系统中的

2017-05-08 16:39:43 795

原创 迭代器模式

定义迭代器模式迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。实例:三个餐厅要合并,每个餐厅的菜单采用不同和数据结构实现,服务员需要获取所有的菜单信息,但是处理逻辑又不能过于复杂。/** * 菜单项 */public class MenuItem { String name; String description;

2017-05-08 13:30:57 189

原创 利用Java提供的观察者

/** * 观察者类的具体实现 */public class ConcreteObserver implements Observer{ //名称的变量 private String observerName; public String getObserverName() { return observerName; } publ

2017-05-07 22:14:37 200

原创 观察者模式

观察者模式的定义定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。推模型目标对象主动向观察者推送目标的详细信息,推送的信息通常是目标对象的全部或部分数据。两种模型做个比较推模型是假定目标对象知道观察者需要的数据拉模型是目标对象不知道观察者具体需要什么数据,因此把自身传给观察者,由观察者取值。拉模型案例,

2017-05-07 21:52:14 203

原创 代理模式

组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。实例:记录日志和汽车行驶的时间/** * 汽车运动接口 */public interface Moveable { void m

2017-05-07 19:46:43 227

原创 模板方法模式

1. 概述  定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2. 模式中的角色  2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。  2.2 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。3.模板方法模式的实现要素      准备一个抽

2017-05-07 18:50:06 174

原创 适配器模式

适配器模式定义:适配器模式将一个类的接口,转化成客户期望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。适配器分类1组合采用组合方式的适配器称为对象适配器特点:把“被适配者”作为一个对象组合到适配器类中,以修改目标接口包装被支配者。2继承采用继承方式的称为类适配器特点:通过多重继承不兼容接口,实现对目标接口的匹配,单一的为某个类而实现适

2017-05-07 16:32:31 271

原创 线程互斥与同步案例

一共有100个盒子,每个盒子中有一定数量的能量,每个线程持有一个盒子,向其他盒子中注入能量,实现能量守恒。public class EnergySystem { //能量盒子,能量存储的地方 private final double[] energyBoxes; private final Object lockObj=new Object(); /**

2017-05-07 13:30:57 480

原创 基于TCP的文件传输

服务器端处理客户请求:public class ServerThread extends Thread { private Socket socket=null; public ServerThread(Socket socket){ this.socket=socket; } @Override public void run()

2017-05-06 22:57:13 976

转载 JAVA之编码/解码-文件输入输出流

问题一:在java中读取文件时应该采用什么编码?Java读取文件的方式总体可以分为两类:按字节读取和按字符读取。按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new String(byte[]);把字节数组转换成String。在最后一步隐藏了一个编码的细节,new String(byte[]);会使用操作系统默认的字符集来解码

2017-05-06 19:52:49 609

原创 Tcp实现对象传输

服务器处理用户连接线程类:public class ServerThread extends Thread { private Socket socket=null; public ServerThread(Socket socket){ this.socket=socket; } @Override public void run(

2017-05-06 19:28:47 1479 1

转载 java8 JDK1.8 API 中文 翻译版 java帮助文档

java 1.6 帮助文档中文链接:http://download.csdn.net/detail/qw599186875/9608735英文Java1.8 帮助文档英文中文 – 谷歌版在线版: https://blog.fondme.cn/apidoc/jdk-1.8-google/下载链接:http://download.csdn.n

2017-05-06 18:07:34 13068 2

原创 对象序列化和反序列化

对象序列化就是将0bject转化成byte序列,反之叫对象的反序列化。序列化的对象要实现Serializable接口类:public class Student implements Serializable{ private static final long serialVersionUID = -5878823330113310798L; private St

2017-05-06 17:08:24 223

原创 遍历所有文件和目录

public class FileUtils { public static void listDirectory(File dir) throws IOException{ if(!dir.exists()){ throw new IllegalArgumentException("目录:"+dir+"不存在。"); }

2017-05-06 15:47:20 303

原创 编程实现基于UDP的多线程多客户端socket应用

服务端处理请求线程:public class ServerThread extends Thread{ private DatagramSocket socket=null; private DatagramPacket packet=null; private byte[] data=null; public ServerThread(DatagramSo

2017-05-06 13:09:15 1639

原创 编程实现基于UDP的socket应用

服务端:public class UDPServer { public static void main(String[] args)throws IOException{ /** * 服务器端接收客户端发送的数据 */ //1.创建服务器端DatagramSocket,指定端口 DatagramS

2017-05-06 12:50:34 411

原创 多线程实现多客户端通信

开线程处理客户端连接:public class ServerThread extends Thread { private Socket socket=null; public ServerThread(Socket socket){ this.socket=socket; } @Override public void run()

2017-05-06 10:13:17 267

原创 编程实现基于tcp的socket编程

server端:public class Server { public static void main(String[] args){ try { //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口 ServerSocket serverSocket=new ServerSocket(

2017-05-06 09:41:11 239

原创 java中URL的应用

public class Test02 { public static void main(String[] args){ try { //创建一个url实例 URL imooc=new URL("http://www.imooc.com"); URL url=new URL(imooc,"/index

2017-05-06 08:41:24 485

VC++6.0绿色中文版

VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版

2017-12-04

数字秒表C++版

用C++实现的一个秒表计时工具

2017-03-21

双人五子棋

c++实现的可以两个人玩的五子棋

2017-03-21

火车票售票系统

自己写了一个火车票售卖系统,实现了座位号和中途站等,附源码

2017-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除