实用的
白云天上飘
这个作者很懒,什么都没留下…
展开
-
IO-Commons-fileUtils
组件:commomsIO * 环境搭建:1.下载:在apache.org网站--点击commons--点击IO--选择高版本,下载--选短的 * 那个,长的是linux系统用的。 * 2.解压之后,文件docs里点开index网页,就是说明书;将commons-io-2.6.jar和commons-io-2.6-sources.jar两个jar包放到项目lib文...原创 2019-03-18 16:29:48 · 158 阅读 · 0 评论 -
网络编程之IP地址----InetAddress类
* IP地址:用来标识网络中的一个通信实体的地址,通信实体可以是计算机、 * 路由器等,比如互联网的每个服务器都要有自己的IP地址,而每个局域网 * 的计算机要通信也要配置IP地址,路由器是连接两个或多个网络的网络设备。 * 总的来说就是定位节点的:可以是计算机、路由、通讯设备等 *分类:IPV4:32位地址,如:192.168.0.1 * IPV6:128位,因为...原创 2019-03-23 16:26:31 · 392 阅读 · 0 评论 -
网络编程之端口----InetSocketAddress类以及通过命令查看端口冲突
* 端口:IP地址是用来区分计算机,那么端口就是来区分计算机里的软件的。 * 端口是一个虚拟的概念,不代表主机里真的有多个端口。端口表示的是 * 一个16位的二进制整数,2个字节,对应十进制的0-65535,两个传输协议: * TCP UDP,同一个协议端口不能冲突。 * 公认端口:0-1023:比如80是分配给www,21端口分配给FTP * 注册端口:102...原创 2019-03-23 16:26:42 · 1019 阅读 · 0 评论 -
网络编程之URL以及下载资源403错误解决方式
* URL:IP定位计算机,端口定位计算机里的软件,那么URL是定位软件里的资源。 * URL是属于URI的分类,下面还有URN: * URI:统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。 * URL:统一资源定位符,一种定位资源的主要访问机制的字符串,一个 * 标准的URL必须包含:协议、存放资源的主机域名、端口号(默认80)、资源文件名 * ...原创 2019-03-23 16:26:53 · 3705 阅读 · 0 评论 -
传输协议,TCP、UDP编程的基本步骤
概念* 传输协议:TCP UDP * TCP:一种面向连接的、可靠的、基于字节流的运输层通信协议,特点: * 面向连接;点到点的通信;高可靠性;占用系统资源多、效率低。 * 就像打电话:拨通、说喂、确认。这就是三次握手。 *UDP:一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,特点: * 非面向连接,传输不可靠,可能丢失;发送不管对方是否准...原创 2019-03-23 16:27:02 · 222 阅读 · 0 评论 -
UDP传输基本数据类型、对象、文件
接收端和发送端是两个类。基本数据类型://发送端 public static void clientData() throws Exception { DatagramSocket client = new DatagramSocket(8888); ByteArrayOutputStream baos = new ByteArrayOutputStre...原创 2019-03-23 16:27:09 · 2331 阅读 · 1 评论 -
TCP双向登录、多线程登录、文件传输
客户端和服务端是两个类文件传输://客户端 public static void file() throws IOException{ //1 Socket socket = new Socket("localhost",8888); //2 InputStream is = new BufferedInputStream...原创 2019-03-23 16:27:26 · 181 阅读 · 0 评论 -
单例模式以及5种实现方式
单例模式:在多线程环境下,对外存在一个对象,并且提供一个访问该实例的全局访问点。说白了就是给类“计划生育”,对外只能有一个。应用场景: * 常见应用场景: * 1.Windows的Task Manager(任务管理器)就是典型的单例模式:启动多次都是一个管理器。 * 2.Windows的回收站也是单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。 * 3.项目...原创 2019-03-19 17:18:11 · 556 阅读 · 0 评论 -
反射和反序列化破解单例模式以及解决方案
* 反射和反序列化可以破解除了枚举之外的4种实现方式。反射破解单例: TestDcl dcl1 = TestDcl.getInstance(); TestDcl dcl2 = TestDcl.getInstance(); System.out.println(dcl1); System.out.println(dcl2)...原创 2019-03-26 19:51:40 · 267 阅读 · 0 评论 -
多线程环境测试单例5种实现方式的效率
写一段代码来测试:public class Test2 { public static void main(String[] args) throws InterruptedException { long start = System.currentTimeMillis(); /* 下面这么写是有问题的,因为这是多线程,当main线程...原创 2019-03-26 19:57:11 · 293 阅读 · 0 评论 -
自定义注解以及使用注解完成类与表结构的映射关系
*自定义注解:1.使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口 * 2.格式:public @interface 注解名{定义体} * 3.其中的每一个方法实际上是声明了一个配置参数: * a.方法的名称就是参数的名称. * b.返回值类型就是参数的类型(返回值类型只能是基本类型、cla...原创 2019-03-26 21:27:41 · 712 阅读 · 0 评论 -
反射以及获取类对象、方法、属性、构造器
什么是反射?* 动态语言:程序运行时,可以改变程序结构或变量类型。典型语言:JS、Python等。 * 在学反射之前,我们需要知道,java不是动态语言,但有一定的动态特性, * 可以利用反射机制、字节码操作获得类似动态语言的特性,这种特性让编程更灵活。 * 反射机制:指的是可以在运行的时候加载、探知、使用编译期间完全未知的类; * 例子:Class c = class.fo...原创 2019-03-26 20:36:12 · 231 阅读 · 0 评论 -
反射机制性能问题,反射操作泛型、注解
性能问题:* 反射机制性能问题:反射使代码灵活,提高了开发效率,也带来了性能问题,运行效率。 * 反射的对象在使用是会有安全检查,我们可以通过setAccessible方法来 * 启用和禁用访问安全检查的开关,true:取消访问检查,false:实施访问 * 检查。禁止安全检查,可以提高反射的运行速度。 field.setAccessible(true);//不需要安...原创 2019-03-26 21:26:49 · 317 阅读 · 0 评论 -
工厂模式三大分类
* 工厂模式:实现创建者和调用者的分离。 * 分类: * 1.简单工厂模式 * 2.工厂方法模式 * 3.抽象工厂模式简单工厂模式,就以造车为例:首先有个车接口,有个跑的方法:public interface Car { void run();}然后有两个实现类:public class Audi implements Car{ ...原创 2019-03-27 15:17:42 · 4642 阅读 · 0 评论 -
建造者模式
* 建造者模式:建造一个复杂的产品,比如:飞船,要生产部件,还要装配。 * 建造模式分离了对象子组件的单独构造(Builder负责)和装配(Director), * 从而可以构造复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。 * 由于实现了构建和装配的解耦,不同的构建器,相同的装配,也可以做出不同的对象; * 相同的构建器,不同的装配顺序也可以做出不同...原创 2019-03-27 15:23:08 · 81 阅读 · 0 评论 -
原型模式,也叫克隆、拷贝模式,深克隆浅克隆
概念: * 原型模式:也可以说是克隆模式。 * 通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以用原型模式。 * 就是java的克隆技术,以某个对象为原型,复制出新的对象,显然,新的对象具备原型对象的特点。 * 优势:效率高:直接克隆,避免了重新执行构造过程步骤。 * 克隆不同于new,new出来的对象属性是默认值,克隆出来的属性完全和原型相同,并且修改不会影...原创 2019-03-27 16:33:04 · 248 阅读 · 0 评论 -
适配器模式
* 适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式使得 * 原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 * 模式中的角色: * 1.目标接口(target):客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口。 * 2.需要适配的类(adaptee):需要适配的类或适配者类。 * 3.适配器(adapter):通过包装一个需要适配的对...原创 2019-03-28 17:47:56 · 114 阅读 · 0 评论 -
代理模式
什么是代理模式?* 代理模式: * 核心作用:通过代理,控制对对象的访问。可以详细控制访问某个(某类)对象, * 在调用这个方法前做前置处理,调用这个方法后做后置处理(即AOP的微观实现)。 * AOP:面向切面编程的核心机制就是代理。 * 现实中,经纪人就是一个代理,一个歌手的经纪人需要在歌手唱歌前跟别人面谈、 * 签合同、安排事宜,然后歌手只需要唱歌,之后收尾款这都是...原创 2019-03-28 22:15:05 · 122 阅读 · 0 评论 -
多线程目录
了解多线程、三种创建多线程的方式以及一些方法多线程下载图片静态代理设计模式推导lambda--简化线程代码线程状态线程优先级守护线程并发、同步方法、同步块、锁容器并发之死锁线程协作:生产者消费者模式任务定时调度...原创 2019-03-23 16:26:18 · 147 阅读 · 0 评论 -
IO流目录
IO流分类了解(概念)以及文本输入输出流字符集,编码解码文件的拷贝以及封装成工具类字节数组流处理流(概念)以及装饰器模式处理流之缓冲流对接流处理流之数据流处理流之对象流处理流之转换流处理流之打印流文件分割、合并、序列流IO-Commons-fileUtils...原创 2019-03-22 16:50:07 · 167 阅读 · 0 评论 -
面向对象目录
抽象类和接口数组扩容、拷贝,二维数组多态和关键字final继承与重写,关键字super内部类封装包装类概念,常用integer,stringBuilder,string方法冒泡排序和二分法(折中法)查找集合(容器),collection,泛型,comparable接口用容器(集合)来存储表格数据时间类,日期(日历)类异常(概念)file类、递归打印文...原创 2019-03-22 16:31:03 · 113 阅读 · 0 评论 -
网络编程目录
网络编程(概念)底层原理分析网络编程之IP地址----InetAddress类网络编程之端口----InetSocketAddress类以及通过命令查看端口冲突网络编程之URL以及下载资源403错误解决方式传输协议,TCP、UDP编程的基本步骤UDP传输基本数据类型、对象、文件TCP双向登录、多线程登录、文件传输...原创 2019-03-25 14:37:17 · 119 阅读 · 0 评论 -
了解多线程、三种创建多线程的方式以及一些方法
概念多线程:多条路径同时进行,那么说明有多个任务,多任务是开启线程的初衷,只有一个任务就不需要开启 * 多线程了。现实生活中,我们可以边看手机边吃饭,看似是同时进行,但是实际上,在一个时间点(这 * 个时间点是指不可分割的)我们的大脑只能做一件事。电脑也是一样,一个CPU在一个时间点只能做一 * 个任务,因为切换的很快,所以有同时进行的错觉;真正的多线程是指有多个CPU,即...原创 2019-03-18 16:54:10 · 174 阅读 · 0 评论 -
多线程下载图片
这里面会用到IO-Commons-fileUtils。多线程下载可以让每条下载都各司其职,互不干扰。先写一个下载图片的类import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.net.URL;public class TestDownlo...原创 2019-03-18 17:05:16 · 120 阅读 · 0 评论 -
静态代理模式
* 静态代理模式(静态定义代理类):类是写好的,直接拿来用。可以用来记录日志 * 需要三部分:1.抽象角色;2.真实角色;3.代理角色 * 模拟歌手唱歌我们使用runnable接口实现多线程的时候,启动必需借助thread类对象,这个对象就是静态代理对象。public class TestStaticProxy { public static void main(Str...原创 2019-03-18 17:14:11 · 157 阅读 · 0 评论 -
推导lambda--简化线程代码
lambda是jdk8以后的一个功能拿一个简单的创建线程来说,平常继承Thread类,重写run方法,用的时候要创建:public class TestSetUpThread extends Thread{ public void run() { for (int i = 0; i <30 ; i++) { System.out.p...原创 2019-03-18 17:28:06 · 176 阅读 · 0 评论 -
常量、变量
变量是指一个可操作的储存空间,值可变化,命名要遵循驼峰原则。 * * 常量的值不可变,用final修饰,命名时用大写和下划线。变量有成员变量、静态变量、局部变量:public class Welocme { int oyhAge;// 成员变量,从属于对象,会自动初始化。 static String oyhName;// 静态变量,从属于类,用static修饰 public...原创 2019-03-22 13:47:22 · 89 阅读 · 0 评论 -
线程状态
线程状态:5大状态:新生、就绪、运行、阻塞、死亡 * 新生:线程对象创建就进入新生状态,每个线程有自己的工作内存。 * 就绪:调用了start方法就进入就绪状态,但不代表会被立即调度;阻塞事件解除,进入就绪状态; * 运行时调用yield(礼让线程,暂停,让出CPU的调度,等待调度)方法,进入就绪状态;jvm * 将CPU从本地线程切换到其他线程,进入就绪状态。...原创 2019-03-18 20:59:03 · 90 阅读 · 0 评论 -
线程优先级
优先级:设置了优先级就不代表一定会先被调度,只是被先调度的可能性大些,就像买彩票, * 你买的多不一定会中,但几率会变大。 * Priority:设置常量 1-10 : * 1.MIN_PRIORITY 1 * 2.MAX_PRIORITY 10 * 3.NORM_PRIORITY 5默认public class TestPriority { publi...原创 2019-03-18 21:03:47 · 85 阅读 · 0 评论 -
守护线程
守护线程:1.线程分为用户线程和守护线程; * 2.JVM必需确保用户线程执行完毕,而不用等待守护线程执行完毕; * 3.是为用户线程服务的; * 4.比如后台记录操作日志、监控内存使用等在西方都信仰上帝守护人民,拿这个写一个例子:写一个people类,一个god类,都实现runnable接口class Peolpe impl...原创 2019-03-18 21:13:58 · 80 阅读 · 0 评论 -
并发、同步方法、同步块、锁容器
什么是并发?怎么解决?并发:会导致线程不安全,数据混乱,比如负数。 * 当多个线程同时操作一个对象就会出现并发问题。 * 怎么解决:现实生活中,当多个人买一样东西或者结账的时候,我们都是排队, * 可以用这个思维。但我们怎么知道上一个线程使用完没,这个可以用一个锁来表示; * 就好像我们住宾馆的时候,我们住的时候会得到一张卡,凭卡进,退房的时候就把卡 * 还给宾馆,这个...原创 2019-03-18 21:37:20 · 185 阅读 · 0 评论 -
并发之死锁
并发之死锁:一个同步块同时拥有两个以上对象的锁就有可能发生死锁; * 因为都在等待着对方释放资源而停止执行。 * 模拟:大丫有镜子,小丫有口红,大丫想要小丫的口红, * 小丫想要大丫的镜子,互不退让。//口红class Lipstick{}//镜子class Mirror{}//化妆class Markup implements Runnable{ ...原创 2019-03-18 22:01:44 · 123 阅读 · 0 评论 -
运算符
* 算术运算符:二元运算符:+,-,*,/,% 一元运算符:++,-- 赋值运算符:= * 扩展运算符:+=,-=,*=,/=,%= 关系运算符:==,!=,>,<,<=,>= * 逻辑运算符:&(或),|(与),!(非),^(异或);短路:&&,||,优先级:逻辑非>逻辑与>逻辑或 * 位运算符:&,|,^,~...原创 2019-03-22 13:56:57 · 84 阅读 · 0 评论 -
控制语句
控制语句:if: int a = 2; int b = 3; int c = 4; if (a > 0) { System.out.println(a); } else if (a > b) { System.out.println(b); } else { System.out.println(c); }控...原创 2019-03-22 14:29:47 · 86 阅读 · 0 评论 -
构造方法
* 构造方法(构造器) * 1.通过new关键字调用 * 2.构造方法虽然有返回值,但不能定义返回类型,不能用return返回某值,可以只用return; * 3.我们如果没有定义构造器,系统会自己定义一个无参的构造函数,如果自己定义了那么系统不会自动添加 * 4.构造方法名必须与类名一致 * * this的本质、用法 (this不能用于static方法中,this指的是对象,静态...原创 2019-03-22 14:41:59 · 84 阅读 · 0 评论 -
参数传值机制
* 参数传值机制:1.传递的是副件,不是原件,对原件没有影响 * 2.基本数据传的是值的副件,引用数据传的是地址public class Value_PassOn { int id ; String name; public Value_PassOn(int id,String name) { this.id = id; this.nam...原创 2019-03-22 14:44:54 · 114 阅读 · 0 评论 -
内存分析:栈、堆、方法区
/*栈stack:1.栈描述的是方法执行的内存模型,每个方法被调用时都会创建一个栈帧(储存局部变量、操作数、方法出口等) * 2.是私有的,不能线程间共享号 * 3.特性:先进后出,后进先出 * 4.是系统自动分配,速度快,是一个连续的空间 * 堆heap:1.用于存储创建好的对象和数组 * 2.只有一个堆。被所有线程共享 * ...原创 2019-03-22 15:55:14 · 222 阅读 · 0 评论 -
Java基础目录
常量、变量运算符控制语句构造方法参数传值机制原创 2019-03-22 16:18:25 · 101 阅读 · 0 评论 -
观察者模式
* 观察者模式:主要用于1:N的通知。 * 当一个对象(目标对象)的状态变化时,需要及时告知一系列对象(观察者对象),令他们做出响应。 * 就比如网上聊天,你发一条消息,其他人那里收到相同的消息内容。 *方式: * 1.推:每次都会把通知以广播方式发送给所有观察者,所有观察者只能被动接收。 * 2.拉:观察者只要知道有情况即可,至于什么时候获取内容,获取什么内容,都可以自主决定。下...原创 2019-03-28 23:44:53 · 136 阅读 · 0 评论