自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咖啡的博客

相信你的日积月累,总有一天会是别人的望尘莫及!

  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 线程(十三)线程互斥技术synchronized

创建两个线程,观察并发时出现的错误:package 测试;​public class TestThread { public static void main(String[] args) { Init(); } public static void Init() { //创建第一个线程 new Thread(...

2018-10-31 17:20:28 140

原创 线程(十二)传统定时器技术

传统定时器技术:(1)Timer类Timer下的方法有以下几个:返回值 方法名 void schedule(TimerTask task, long delay) void schedule(TimerTask task, long delay, long period) void schedule(TimerTask task, Date time...

2018-10-31 17:13:46 135

原创 线程(十一)两种传统传统方式创建:(thread、Runnable), 线程池方式ExcutorServicePool

 传统方式创建线程:1、继承Thread类,重写run方法2、实现Runnable接口,覆盖接口中的run方法,然后将接口实现扔给Thread run方法探秘:Thread源码中的run方法,如下:@Overridepublic void run() {    if (target != null) {        target.run();   }}...

2018-10-31 17:08:37 112

原创 线程(十)关于Callable和future的介绍:

1、Callable类似于Runnable,为线程设计。区别在于,callable有返回值future,而Runnable则不会有返回值,同时Runnable不会抛出异常。future用于记录线程是否完成,不能用于判断线程执行是否正确。关于callable实例:public class CallableAndFuture { public static void main(St...

2018-10-31 16:45:58 484

转载 Java - byte[] 和 String互相转换

通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等。除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常String代表文本字符串,byte数组针对二进制数据通过String类将String转换成byte[]或者byte[]转换成String用String.getBytes...

2018-10-31 14:53:48 10307

原创 Java之IO学习(五)NIO选择器

内容:  NIO称为非阻塞IO,实现了IO的多路复用中的Reactor模型,一个线程Thread使用选择器selector通过轮询的方式监听多个通道(channel)。因为创建和切换线程的开销很大,因此使用一个线程来处理多个事件而不是一个线程处理一个事件,对于 IO 密集型的应用具有很好地性能。套接字通道必须为非阻塞的。(FileChannel为非阻塞的) 1、创建选择器...

2018-10-31 13:34:39 243

原创 Java之IO学习(四)NIO通道缓存区

NIO时JDK1.4以后引入的,弥补了原咯爱IO的不足;1、流与块:IO和NIO的区别:(1)IO一次处理一个字节,输入/输出均为一个字节(2)NIO方式一次处理一个数据块 2、通道与缓冲区:(1)通道(Channel):通道是对原来的IO的流的模拟,与IO最大的区别在于IO只能是单向的要么输入要么输出,而通道则可以同时读也可以同时写。通道包括:FileCh...

2018-10-31 11:49:26 277

原创 Java之IO学习(三)网络操作

Java中的网络支持:InetAddress:用于表示网络上的硬件资源,即 IP 地址; URL:统一资源定位符; Sockets:使用 TCP 协议实现网络通信; Datagram:使用 UDP 协议实现网络通信。 1、InetAddress:(1)没有构造函数,只能通过静态方法来创建实例;InetAddress.getByName(String host);Inet...

2018-10-31 10:54:55 186

原创 Java之IO学习(二)对象操作(序列化、反序列化)

1、内容序列化就是将对象转换成字节序列,方便存储和转换ObjectInputStream--readObject(): 读入对象,反序列化ObjectOutputStream--writeObject(): 输出对象,将对象转换为字节传输, 序列化注意:这里序列化对静态变量无效,因为静态状态是属于类的状态只有在写出对象时,才能用writeObject/readObject方法,...

2018-10-30 20:01:51 111

转载 如何双击运行可执行jar包

 我这有一个可执行打jar包,无法点击运行。看了我网上的修改注册表的方式也无法执行。查到下面的方法:桌面下新建一个批处理文件:runjar.bat  然后拷贝下面的代码到runjar.bat文件@echo offjava -jar %1pause选择你的可执行jar包,右键选择打开方式,选择默认runjar.bat打开。 如图所示:我这里是一个可执行的jar文...

2018-10-30 17:16:42 2593

原创 线程(九)join方法的简单介绍:

1、join方法的实现原理:join方法原理就是利用线程的wait方法等待操作:A线程中调用了B线程的join方法,则相当于在A线程中调用了B线程的wait方法,当B线程执行完(或者到达等待时间),B线程会自动调用自身的notifyAll方法唤醒A线程public final synchronized void join(long millis) throws Interrupted...

2018-10-30 14:22:47 154

转载 线程(八)线程池

一、线程池1、什么是线程池?答: 经常创建、启动销毁一个线程都是非常消耗时间的。 使用线程池进行管理和复用线程,提高程序效率。 面试答:Java线程池能带来的3个好处: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3、提高线程的可管理性。线程是稀缺资源,如果无...

2018-10-30 13:31:55 145

转载 线程(七)原子操作

何谓原子性操作,即为最小的操作单元,比如i=1,就是一个原子性操作,这个过程只涉及一个赋值操作。又如i++就不是一个原子操作,它相当于语句i=i+1;这里包括读取i,i+1,结果写入内存三个操作单元。因此如果操作不符合原子性操作,那么整个语句的执行就会出现混乱,导致出现错误的结果,从而导致线程安全问题。因此,在多线程中需要保证线程安全问题,就应该保证操作的原子性,那么如何保证操作的原子性呢?其一当...

2018-10-30 11:54:47 379

原创 线程(六)多线程间数据共享

起多个线程时,分别执行不同的任务,如加减运行,一个线程负责增加increment, 一个线程用于减decrement:1、例子:public class MultiThreadShareData { public static void main(String[] args) { ShareData task = new ShareData(); //公共数据...

2018-10-30 11:04:59 206

原创 线程(五)ThreadLocal解决线程范围内数据的共享及疑问?

1、该方法缺点是只能放入一个数据package 多线程;import java.util.Random;//ThreadLocal来完成线程范围内数据的共享public class pthread { private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>()...

2018-10-29 17:27:08 263

原创 设计模式(四)工厂模式

以武哥的女娲造人为例:女娲生产人,人有黑白黄三种,同时会说:1、接口类为:package 工厂模式;public interface Human { //人有不同颜色 public void getColor(); //人会说话 public void talk();} 2、下面捏各种人模子:白:package 工厂模式;public cla...

2018-10-29 16:05:44 127

原创 设计模式(三)代理模式

代理模式:一个代理角色和一个真正的角色,代理角色代替真正角色执行操作代理模式又分为静态代理模式和动态代理模式。静态代理模式:1、首先抽象角色(参考武哥的例子)package 代理模式;//接口类定义方法public interface Star { public void confer(); //面谈 public void sing(); //唱歌 public ...

2018-10-29 15:06:37 106

转载 设计模式(二)策略模式2

 看了武哥的策略模式,感觉真是易懂哈   策略模式在实际中使用的还是挺多的,先来看一个场景:某个市场人员接到单儿后的报价策略,保价策略很复杂,但是可以简单做如下归类:新客户小批量报价 新客户大批量报价 老客户小批量报价 老客户大批量报价  具体选用哪个报价策略,这需要根据实际情况来确定,这时候采用策略模式即可解决这个问题。这个问题中,如果我们不采用策略模式会怎样处理呢?很自然的会...

2018-10-29 14:17:15 135

原创 设计模式(二)策略模式

1、策略者模式图解  2、应用代码:接口类:public interface State { void lostNetwork(); //断网请求 void sendCheckInRequest(); //签到 void connectServer(); //连接服务器 void checkInResponse(Message ...

2018-10-23 11:54:39 135

原创 设计模式(一)单例模式

 1、首先写一个通用单例模式public class SingletonPattern() { private static SingletonPattern singletonPattern = null; //抑制不能产生一个实例 private SingletonPattern() { } public SingletonPattern getIn...

2018-10-23 11:24:54 134

原创 在不那么温暖的世界里,有一丝善意都是好的。

在不那么温暖的世界里,有一丝善意都是好的。

2018-10-22 13:22:29 123

转载 Intellij IDEA 快捷键

 【常规】Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择...

2018-10-16 15:58:28 231

spring-mybatis

简单学生用户管理系统,适合初学者学习。推荐初学者看一看!

2018-08-05

spring4mvc

初学者值得一看!初学者值得一看!初学者值得一看!初学者值得一看!初学者值得一看!

2018-08-05

空空如也

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

TA关注的人

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