自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 【Java】使用Hash算法MD5比较文件是否完全相同

import java.io.File;import java.io.FileInputStream;import java.math.BigInteger;import java.security.MessageDigest;public class CompareFile { public static void main(String[] args) { ...

2018-10-11 14:29:53 1485

原创 【Java】反射 & 反射性能 & 反射操作泛型 & 反射操作注解

反射机制运行时加载,探知,使用编译期间完全未知的类。 程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个已加载的类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用他的任意一个方法和属性。 jvm加载完类之后,在堆内存中,就产生了一个对应的Class类型的对象,这个对象就包含了完整的类的结构信息。Class(大写c)是一个类。 一个类只有一个Class反射对象。...

2018-10-01 09:31:18 271

原创 【Java】自定义注解 & 反射机制读取注解实现简单ORM

注解作用注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,没有加,则等于没有任何标记,以后,javac编译器、开发工具和其他程序可以通过反射来了解你的类及各种元素上有无何种标记,看你的程序有什么标记,就去干相应的事,标记可以加在包、类,属性、方法,方法的参数以及局部变量上。 不是程序本身,可以对程序作出解释。 可以被其他程序(如:编译器)读取...

2018-09-29 15:16:54 400

转载 动态规划

动态规划的主要思想就是把之前计算过的储存起来,之后就直接调用,不重复计算,来节约时间,提高效率。以Fibonacci数列的计算为例子:public int fib(int n){ if(n<=0) return 0; if(n==1) return 1; return fib(n-1) + fib(n-2);}递归树如上所示,当计算fib(5)...

2018-09-26 10:16:34 232

原创 时间复杂度

O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。 O(1) 常数阶 < O(logn) 对数阶 < O(n) 线性阶 < O(nlogn) < O(n^2) 平方阶 < O(n^3) < { O(2^n) < O(n!) < O(n^n) } 括号中的三个复杂度耗费时间巨大,如果算法为以上三个...

2018-09-21 13:14:47 180

原创 【Java】udp 实现 client端和server端通信

客户端 1.创建客户端+端口 2.准备数据 3.打包(发送的地点及端口) 4.发送 5.释放 服务端 1.创建服务端+端口 2.准备接受容器 3.封装成包 4.接受数据 5.分析数据 6.释放 client.javapackage UdpDemo;import java.io.IOException;import java.net.DatagramP...

2018-08-29 16:19:07 7320 2

原创 【Java】生产者消费者模式避免线程死锁

当多个线程使用同一资源时候会造成死锁,此时,可以使用生产者消费者模式来避免线程死锁标志位来做信号灯控制线程防止deadlockflag-true:生产者生产,消费者等待,生产完成后,通知消费 flag-false:消费者消费,生产者等待,消费完成后,通知生产在模拟中,share类模拟共享资源,如果flag位true,则this.wait(),声场完成后,notify()后,置flag为...

2018-08-29 10:55:38 960

原创 【Java】线程同步 & 单例设计模式应用 & double check

单例设计模式--->确保一个类只有一个对象懒汉式单例模式构造器私有化,避免外部直接创建对象 声明一个私有的静态变量 创建一个对外的公共的静态方法访问该变量,如果变量没有对象,创建该对象package TreadLearning;import org.omg.CORBA.SystemException;/** * 单列设计模式:确保一个类只有一个对象 * * @...

2018-08-27 16:55:49 195

原创 【Java】线程同步 & 锁定

线程安全是什么由于JVM设计中线程执行是抢占式的,所以会造成多个线程修改一个数据不同步的问题。例如两个人同时取一个账户里面的钱,账户中有100块,两个人都取70块,会造成账户出现负数情况。线程安全三种解决方式同步代码块 同步方法 同步锁同步代码块synchronized(obj){ ... //此处代码就是同步代码 //obj是要锁定的类 } ...

2018-08-27 16:05:29 149

转载 Google大数据三篇著名论文

Google File System中文版Google Bigtable中文版Google MapReduce中文版

2018-08-26 16:42:54 1159

转载 消息队列中间件 & AMQP 学习

AMQP-Advanced Message Queue Protocol是什么AMQP(高级消息队列协议)是一个网络协议。它支持符合要求的客户端应用(application)和消息中间件代理(messaging middleware broker)之间进行通信。 消息代理消息代理(message brokers)从发布者(publishers)亦称生产者(producers)那儿接收消...

2018-08-23 15:21:40 620

原创 【Java】三种方式创建多线程

通过集成Thread类实现多线程package TreadLearning;/** * 创建线程方法1 * 利用继承Thread类+重写run方法 * new对象然后调用start()方法(不能直接调用run方法) * @author 袁盛桐 * */public class TreadExtend extends Thread{ @Override public v...

2018-08-22 10:28:11 324

原创 【Java】Collections 容器同步控制与只读设置

利用Collection的方法,控制容器的属性设置线程安全,synchronizedxxx(List,Map,Set) 设置不可修改,unmodifiablexxx(List,Map,Set) 设置只有一个元素,singletonxxx(List,Map,Set) 返回空,EMPTY_XXX(List,Map,Set)避免NullPointerExceptionpackage tes...

2018-08-20 16:00:23 385

原创 【Java】TreeSet & TreeMap

TreeSet 和 TreeMap 可以实现对对象的排序 使用重写comparable接口方式import java.util.TreeMap;import java.util.TreeSet;import org.omg.CORBA.PUBLIC_MEMBER;/** * TreeSet实现排序,此为实现comparable接口来进行比较 * 如果重写的compare...

2018-08-19 23:20:58 184

原创 【Java】Comparable & Comparator 自定义排序

自定义排序两种方式实现Comparable接口,并重写compareTo方法 实现Comparator接口,并重写compare方法Collections工具类sort方法sort(List<T>) sort(List<T>, comparator<T>)自己实现一个Collections类(MySort)package compare...

2018-08-16 15:20:38 291

原创 【Java】Iterator底层原理,自己实现Iterator

package test;import java.util.Iterator;public class MyIterator implements java.lang.Iterable<String> { private String[] element = {"a","b","c","d","e"}; private int size = element.l

2018-08-14 16:29:51 3453

原创 【Java】JDK8 forEach & lamda表达式

用forEach替代for来循环import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * forEach 遍历collection容器 * @author 袁盛桐 * */public class ForEachTest { p...

2018-08-09 11:28:29 2056 1

原创 【Java】HashSet底层原理,自己实现HashSet

HashSet利用HashMap,利用Hash Map的key不可重复性package test;import java.util.HashMap;/** * 自己实现一个HashSet,了解底层实现与原理 * @author 袁盛桐 * */public class MyHashSet { HashMap map; private static final Obj...

2018-08-01 13:46:05 685

原创 【Java】HashMap底层原理,自己实现HashMap

HashMap基本原理HashMap 是 Map 的一个实现类,它代表的是一种键值对的数据存储形式。Key 不允许重复出现。jdk 8 之前,其内部是由数组+链表来实现的,而 jdk 8 对于链表长度超过 8 的链表将转储为红黑二叉树。基本成员属性//默认的容量,即默认的数组长度 16static final int DEFAULT_INITIAL_CAPACITY = 1 &...

2018-08-01 11:29:35 636

原创 【Java】LinkedList 底层原理,自己实现LinkedList

package test;/** * 节点的类定义 * @author 袁盛桐 * @version 1.0 */class Node{ Node previous; Object obj; Node next; }/** * 自己实现一个linkedlist,学习原理和底层实现 * @author 袁盛桐 * @version 1.0 */public c...

2018-07-31 14:40:05 878

原创 【Java】ArrayList 底层原理,自己实现ArrayList

实现的功能有 elementData对象数组用来存放对象 size 计算容器大小 ArrayList空构造器,带初始大小的构造器 ensureCapacity进行对象数组扩容 rangeCheck进行检查输入值是否在范围内 get方法返回某一位置对象 set方法修改某一位置对象 add方法在结尾增加对象,在指定位置增加对象 remove删除制定位置对象,删除与传参对象相同的对象...

2018-07-31 11:01:01 255

原创 【Java】String,StringBuilder和StringBuffer内存分析

继承关系StringBuffer和StringBuilder都继承自AbstractStringBuilder这个类,而AbstractStringBuilder和String都继承自Object这个类。String,StringBuffer, StringBuilder的区别 String是不可变类,而StringBuffer, StringBuilder是可变类,String...

2018-07-25 11:51:24 2364 1

原创 【Java】super

super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。若是构造方法的第一行代码没有显式的调用super(...)或者this(...);那么Java默认都会调用super(),含义是调用父类的无参数构造方法。这里的super()可以省略。Java创建对象时,先追溯到object创建,然后是继承的父类,然后是当前子类。...

2018-07-23 09:31:32 536

原创 【Java】==和equals()

==号在比较基本数据类型时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值equals()在不重写的情况下是比较内存地址,但Java中大多数类都重写了equals()方法,所以是比较值String str1 = "abc";String str2 = "abc";System.out.println(str1.equals(str2));System.out.print...

2018-07-23 09:12:11 95

原创 【Java】通过软引用和弱引用提高JVM内存性能

引用:强引用:指在程序代码中普遍存在的,类似Object obj = new Object(),只要强引用在,GC不会回收掉被引用的对象。 软引用:有用但并非必须的对象。在系统要发生内存溢出异常之前,先把这些对象二次回收,如果还没有足够内存,则抛  出内存溢出异常。 弱引用:比软引用更弱的非必需对象,此类对象只能生存道下一次GC之前,GC时无论内存是否够用,都会回收此类对象。 虚引用:最...

2018-07-19 20:06:24 213

原创 【java】垃圾回收机制

引用计数算法原理:给对象添加一个引用计数器,当有一个地方引用它时,计数器值+1,当引用失效时,计数器值-1,当计数器值为0时,对象不再被使用。 弊端:难以解决对象之间的相互循环引用的问题。     可达性分析算法原理:通过一系列称为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径称为引用链,当一个对象到Gc Roots 没有任何引用链相连时,也就是不可达...

2018-07-19 16:54:02 195

原创 【Asp.Net】登陆注册+sql server增删改查 小demo

由于只注重主要功能实现,并未优化前端页面,所以看起来比较原始。采用webform技术三层架构 + webform显示Models层,数据模型层 BLL层,业务逻辑层 reference Models and DAO DAO层,数据访问层 reference Models webform reference Bll and models(1)登陆部分login.asp...

2018-07-19 14:21:25 13453 10

原创 【Java】 关键字Native及JNI

JNI(Java Native Interface),java用户与本地c代码相互操作的接口。使用本地代码(C/C++)来克服Java中的内存管理和性能问题,Java通过JNI机制来支持内地代码的使用。 先简单了解,后面进行实例操作https://blog.csdn.net/createchance/article/details/53783490 ...

2018-07-18 22:56:56 292

原创 【Asp.net bug】CS1009    Unrecognized escape sequence

在链接数据库字符串中string strCon = "Data Source=CNTSNW10345790\SQL2014;Initial Catalog=pilot;Integrated Security=True";\ 出现问题解决方案:用\\代替\

2018-07-17 16:38:23 2781

原创 【Asp.Net bug】HTTP Error 403.14 - Forbidden

在web.config中添加节点<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true" /> </system.web...

2018-07-17 16:34:51 1053

原创 【Java】 类内存分析

Java虚拟机的内存可分为几个区域:栈stack、堆heap、方法区method area、程序计数器Java虚拟机栈:  1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)  2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)  3. 栈属于线程私有,不能实现线程间的共享       4....

2018-07-15 20:48:17 572

原创 逻辑运算符

& 逻辑与   a&b   a和b同为true时候为true,否则为false。&& 短路与   a&&b   当a为false的时候就不计算b的操作数,直接返回false,提高了计算效率。|和||为相同道理。^ 逻辑异或   相同为false,不同为true...

2018-07-14 22:38:15 150

原创 ++i 和 i++的区别

int i=3;a=++i 表示先对i执行+1然后赋给a,a=4,i=4a=i++表示先把i赋给a然后再执行+1,a=3,i=4

2018-07-14 21:27:35 280

原创 【java】 浮点数精度

由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。 浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。         java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以...

2018-07-14 21:13:45 332

原创 【java】标识符(命名规则)

表示类名的标识符:每个单词的首字母大写 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写(驼峰原则) 常量:字母大写中间加入下划线 如:ABC_BCD java采用unicode国际字符集,可以使用中文等 ...

2018-07-13 22:29:29 684 1

转载 【java】 注释

单行注释:  使用“//”开头,“//”后面的单行内容均为注释。 多行注释:   以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。 文档注释:   以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API) ...

2018-07-13 22:23:25 127

原创 DOS命令(windows)

cd 进入一个目录cd .. 父目录dir 目录列表cls 清屏Tab 自动补齐命令

2018-07-13 22:01:23 86

原创 【java】环境配置

系统变量添加JAVA_HOME 系统变量中的path中添加jdk的bin目录命令行出现版本信息则代表配置成功,可以运行jdk的bin目录下的java.exe

2018-07-13 21:29:24 115

转载 【java】运行机制简介,JDK.JRE.JVM关系

Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class; 最后利用虚拟机(解释器,java)解释执行。、Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。Java  Development Kit (JDK...

2018-07-13 21:11:14 196

转载 史上最简单navicate破解

请根据自己安装Navicat Premium 12的语言(简体中文、繁体中文、英文)和版本位数(32位、64位),将对应文件夹里的所有文件拷贝至Navicat Premium 12安装位置的根目录(即能看到navicat.exe的那个目录)。破解补丁百度云链接...

2018-07-13 19:50:32 5321

空空如也

空空如也

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

TA关注的人

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