
java
凭栏观雨_远
这个作者很懒,什么都没留下…
展开
-
Linux-Ubuntu14.04下配置ftp,安装java1.8和tomcat8
我的所有操作是在root用户下进行的1、配置ftp使用apt-get update 命令更新软件包,避免直接安装vsftpd报错。使用apt-get install vsftpd命令安装vsftpd。安装vimapt-get install vim编辑vsftpd配置vi /etc/vsftpd.conf追加write_en原创 2016-09-25 12:15:18 · 750 阅读 · 0 评论 -
设计模式之适配器模式Java实现
设计模式之桥接模式+适配器模式Java实现适配器模式(Adapter Pattern) 意图: 将一个类的接口转换客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 分类: 结构型模式结构型模式(Structural Pattern):描述如何将类或者对象结合形成一个更大的结构。别名: Wrapper–包装器 适原创 2017-05-10 00:39:50 · 841 阅读 · 0 评论 -
IDEA使用maven搭建java项目连接redis(图文)
1.新建项目 2.添加依赖对应的依赖配置项可以在https://mvnrepository.com/artifact/redis.clients/jedis 中找到,可以根据自己想要的版本进行配置。 3.mevan下载jar 4.解决依赖包导入问题5.连接redis服务原创 2017-05-31 21:58:50 · 10726 阅读 · 1 评论 -
设计模式之抽象工厂
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。别名:Kit动机:在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化呢?如何绕开常规的对象创建方法(new),提供一种“封装机制”来避免客户端程序和这种“多系列具体对象创建工作”的高耦合? 1.一个系统需要消费多个抽象产品角色,这些抽象产品原创 2017-06-21 15:33:03 · 492 阅读 · 0 评论 -
设计模式之装饰模式Java实现
装饰模式---对象结构型模式1.意图动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。2.别名包装器Wrapper3.动机有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些组件,例如边框,或是一些行为,例如窗口滚动等。4.原创 2017-06-21 00:01:55 · 963 阅读 · 0 评论 -
判断IP地址的合法性(Java)
有时候我们要对用户输入的IP地址进行校验,判断这个IP地址是不是一个合法的IP地址。解决方案:构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则是正确的IP地址,否则IP地址格式错误。这里的难点是如何构造出一个可用的正则表达式。/** * Created by yangy on 2017/7/23. */public class IPCheckTool { /**原创 2017-07-24 00:46:43 · 5628 阅读 · 0 评论 -
【JAVA 工具】jstack简单使用,定位死循环、线程阻塞、死锁等问题
转载地址:http://www.cnblogs.com/chenpi/p/5377445.html当我们运行java程序时,发现程序不动,但又不知道是哪里出问题时,可以使用JDK自带的jstack工具去定位;废话不说,直接上例子吧,在window平台上的;死循环写个死循环的程序如下:package concurrency;public class Test转载 2017-09-29 15:27:27 · 950 阅读 · 0 评论 -
try catch finally在有return的情况下的执行顺序
1、不管有没有出现异常,finally块中的代码都会被执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的此时会先把要返回的值保存起来,不管finally中的代码做什么,返回的值不会改变,仍然是之前保存的值。4、finally中最好不要使用return,这会使得程序提前退出,返回值不是try或者catch...原创 2018-10-01 08:39:15 · 447 阅读 · 0 评论 -
【Java并发】Java并发之CountDownLatch
CountDownLatch是一个同步辅助类,可以使用它做一个类似于计数器的功能,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。典型的应用场景:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。CountDownLatch类中最重要的三个方法。public void await() throws InterruptedException...原创 2018-10-08 14:18:24 · 381 阅读 · 0 评论 -
CMS和G1垃圾收集器
CMSCMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。运作过程:初始标记(CMS initial mark)并发标记(CMS concurrent mark)重新标记(CMS remark)并发清除(CMS concurrent sweep)初始标记和重新标记需要“Stop The World”。初始标记仅仅只是标记一下GC R...原创 2019-07-11 22:38:00 · 413 阅读 · 0 评论 -
垃圾收集算法
标记-清除算法如名字,分为“标记”和“清除”两个阶段:首先标记处所有需要回收的对象,在标记完成后统一回收所有被标记的对象。不足效率问题空间问题 标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后咋程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前出发另一侧垃圾收集动作。复制算法复制算法将可用内存按容量划分为大小相等的两块,每次只使用其中一块。当这一...原创 2019-07-11 23:05:41 · 187 阅读 · 0 评论 -
彻头彻尾理解 HashMap
摘要: HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后,通过对 HashMap 的数据结构、实现原理、源码实现三个方面的剖析,深入到它底层 Hash转载 2017-05-28 11:32:04 · 941 阅读 · 0 评论 -
算法实战:根据Key或Value对Map进行排序及其应用
摘要: 我们知道,Map是 Java Collection Framework 的重要成员,也是我们最常用的容器类之一。Map的实现多种多样,包括HashMap、LinkedHashMap等。但是,无论实际中使用哪种实现,我们在编程过程中常常会遇到诸如根据Key或Value对Map进行排序、保持Map插入顺序等问题,本文特别针对以上几个问题给出了具体解法,并分享华为一道与我们主题极为相关转载 2017-05-28 11:28:44 · 708 阅读 · 0 评论 -
图解Java 垃圾回收机制
摘要: Java技术体系中所提倡的 自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存 以及 回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的 堆区。关于对象分配内存问题,笔者的博文《JVM 内存模型概述》已经阐述了 如何划分可用空间及其涉及到的线程安全问题,本文将结合垃圾回收策略进一步给出内存分配规则。垃圾回收机制的引入可以有效的防止内存泄露转载 2017-05-28 11:04:23 · 14952 阅读 · 3 评论 -
七牛云存储java上传图片
1、注册七牛云存储账号2、添加对象存储3、新建java或javaWeb项目导入七牛云存储需要jar包gsonokhttpokioqiniu-java-sdk-7.1.3.jar下载地址:https://download.youkuaiyun.com/download/plgy_y/107217524、文件上传代码package main;import java.i...原创 2016-09-27 19:24:01 · 6191 阅读 · 7 评论 -
java学校,班级,学生类的三级关系
//学校类class School { private Class[] aClass; private String schoolName; public void School() { } public Class[] getaClass() { return aClass; } public void setaC原创 2016-12-10 16:24:29 · 6191 阅读 · 0 评论 -
Java回调
代码:interface Lister{ void callback(String string);}class Service { public void getSomeThing(Lister lister){ //做耗时的网络请求等 try { Thread.sleep(1000); } c原创 2017-03-23 21:38:36 · 631 阅读 · 0 评论 -
设计模式之桥接模式+适配器模式Java实现
桥接模式和适配器模式的比较它们的共同点是桥接和适配器都是让两个类配合工作,它们的区别是出发点不同,适配器的出发点是改变已有的两个接口,让它们相容,可以结合那些功能上相似但是接口不同的类,桥接模式的出发点是分离抽象化和实现化,是两者的接口可以不同,目的是分离。 1. 桥接是先有桥,才有两端的东西 2. 适配是先有两边的东西,才有适配器 桥接是在桥好了之...原创 2017-05-10 00:57:57 · 2489 阅读 · 2 评论 -
设计模式之桥接模式java实现
1.意图将抽象部分和与它的实现部分分离,使它们都可以独立地变化。2.别名Handle/Body3.动机原创 2017-05-06 15:23:53 · 744 阅读 · 0 评论 -
彻头彻尾理解 ConcurrentHashMap
原文链接摘要: ConcurrentHashMap是J.U.C的重要成员,它是HashMap的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。本文将结合Java内存模型,分析JDK源代码,探索ConcurrentHashMap高并发的具体实现机制,包括其在JDK中的定义和结构、并发存取转载 2017-05-28 10:48:48 · 1829 阅读 · 0 评论 -
JVM运行时内存区域
程序计数器(Program Counter Register)程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现,在任何一个时刻,CPU的某一核都只执行一条线程中的指令。为了保证线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,互不影响。如果线程正在执行的是一个Java方...原创 2019-07-11 23:07:11 · 203 阅读 · 0 评论