自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 单例实现

2019-07-08 16:02:26 113

转载 反射cglib

https://blog.csdn.net/yhl_jxy/article/details/80633194

2019-07-08 15:48:55 439

转载 反射jdk

一.什么是反射Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运...

2019-07-08 15:41:07 694

转载 String的构造

String PoolString Pool,字符串常量池。(位于堆中)常量池在java用于保存在编译期已确定的,已编译的class文件中的一些数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = "java"这种申明方式;当然也可扩充,执行器产生的常量也会放入常量池,故认为常量池是JVM的一块特殊的内存空间。java中的常量池技术,是为了方便快捷地创...

2019-07-06 10:22:38 109

转载 int和Integer的区别

int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0延伸:关于Integer和int的...

2019-07-04 15:19:53 125

转载 2018-4-23 JVM String与StringBuilder final和static

1. JVM的基础结构知识JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配;从更高的维度来看:Java堆(Heap)对于大多数应用来说,Java堆(Java Heap)是Java...

2019-07-03 17:41:45 537

转载 Linux(9)磁盘配额和进阶档案系统管理

一.Quota在 Linux 系統中,由於是多人多工的環境,所以會有多人共同使用一個硬碟空間的情況發生, 如果其中有少數幾個使用者大量的佔掉了硬碟空間的話,那勢必壓縮其他使用者的使用權力! 因此管理員應該適當的限制硬碟的容量給使用者,以妥善的分配系統資源!避免有人抗議呀!对于网络服务:針對 WWW server ,例如:每個人的網頁空間的容量限制! 針對 mail server,例如...

2018-11-13 11:25:29 402

原创 Linux(8)Linux账号管理和ACL群组设定

一.Linux的账号与群组①UID和GIDLinux并不会直接认识账号,每个账号都有一个ID,这个ID存放在/etc/passwd里面。每个登入的账户至少有2个ID,一个是使用者ID(UID),另一个是群组ID(GID)。如何登陆:先找尋 /etc/passwd 裡面是否有你輸入的帳號?如果沒有則跳出,如果有的話則將該帳號對應的 UID 與 GID (在 /etc/group ...

2018-10-31 17:04:24 343

原创 Linux(7)学习shell script

一.什么是shell scriptshell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。簡單的說, shell script 就像是早期 DOS 年代的批次檔 (.bat) ,最簡單的功能就是將許多指令...

2018-10-30 17:35:22 321

原创 Linux(6)正规表示法与文件格式化处理

一.正则表达式①编码对正则表达式的影响我們看到的字元文字與數字都是透過編碼表轉換來的。由於不同語系的編碼資料並不相同,所以就會造成資料擷取結果的差異了。 舉例來說,在英文大小寫的編碼順序中,zh_TW.big5 及 C 這兩種語系的輸出結果分別如下:LANG=C     時:0 1 2 3 4 ... A B C D ... Z a b c d ...z LANG=zh_TW 時:0...

2018-10-27 18:35:42 158

原创 Linux(5)认识与学习BASH

一.BASH和Shell我們在第一章 Linux 是什麼當中提到了: 管理整個電腦硬體的其實是作業系統的核心 (kernel),這個核心是需要被保護的! 所以我們一般使用者就只能透過 shell 來跟核心溝通,以讓核心達到我們所想要達到的工作。 那麼系統有多少 shell 可用呢?為什麼我們要使用 bash 啊?底下分別來談一談喔!①shell 硬件 核心這應該是個蠻有趣的話題:『什麼...

2018-10-25 17:56:14 209

原创 Linux(4)vim程式编辑器

一.文本处理器在 Linux 的世界中,絕大部分的設定檔都是以 ASCII 的純文字形態存在,因此利用簡單的文字編輯軟體就能夠修改設定了! 與微軟的 Windows 系統不同的是,如果你用慣了 Microsoft Word 或 Corel Wordperfect 的話,那麼除了 X window 裡面的圖形介面編輯程式(如 xemacs )用起來尚可應付外,在 Linux 的文字模式下,會覺得...

2018-10-24 17:30:20 204

原创 Linux(3)压缩指令的应用

一.压缩压缩就是尽可能降低文件在磁盘里占用的空间,比如:电脑中一般使用bytes来作为单位的。假设要存储1这个数字,那么就会存储为0000 0001 这样就会有7个0,某些电脑工程师就用某些复杂的算法,使得只用存一位1就行。又比如,111111这里有1000个1,那么在存储的时候就会用到很多空间,如果只存1000和1这两个数字来表示这一千个1,就会省下很多空间。這個『壓縮』與『解壓縮』的動...

2018-10-20 16:01:18 306

原创 Linux(2)磁碟与档案系统

一.磁碟与档案/dev/sd[a-p][1-128]:為實體磁碟的磁碟檔名 /dev/vd[a-d][1-128]:為虛擬磁碟的磁碟檔名那麼檔案系統是如何運作的呢?這與作業系統的檔案資料有關。較新的作業系統的檔案資料除了檔案實際內容外, 通常含有非常多的屬性,例如 Linux 作業系統的檔案權限(rwx)與檔案屬性(擁有者、群組、時間參數等)。 檔案系統通常會將這兩部份的資料分別存放在不同...

2018-10-18 16:45:27 274

原创 Linux(1)基础知识

一.安装Linux及即可,设置的时候记得把图形界面打上勾(GUI),不然初学者碰见命令行会十分懵逼。二.界面介绍①隐藏文件很简单,只需要在文件名字前面加上点   .②设置在这里③图形界面和文字界面的切换  ctrl+alt+F(1-6).  但是需要保证下列几个事实:並沒有其他的 X window 被啟用; 你必須要已經安裝了X Window system,並且X s...

2018-10-16 19:23:06 216

原创 Javaweb-spring的AOP极其简单的入门

一.什么是AOP在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,...

2018-10-09 21:36:53 165

原创 Javaweb-spring的IoC

一.为什么要使用spring框架?解耦。1.1如果没有Spring,我们不得不在使用每个类之前,实例化一个对象。当然我们可以用工厂方法来做这件事,就可以集中管理并且让调用者和被调用者之间的耦合更松散。于是需要大量的工厂类,并且在增加或改变接口实现的时候,还需要对工厂进行调整。而Spring就像一个大工厂一样,使用了大量的反射机制来生成需要实例的对象。除此之外Spring还带来了强大...

2018-10-08 21:58:48 227

转载 Javaweb-jstl标签与el表达式

一、JSTL标签1.什么是jstlJSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!2.JSTL一共包含四大标签库:core:核心标签库,我们学习的重点; fmt:格式化标签库,只需要学习两个标签即可; sql:数据...

2018-10-08 20:50:36 169

转载 Java 网络通信-HTTP

首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。 接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。 接收端的服务器在链路层...

2018-10-08 15:46:16 251

转载 Java 网络通信-网络协议

一.什么是协议互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。二.OSI七层协议每层常见的物理设备三.TCP五层模型我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层...

2018-10-08 15:42:01 1028

转载 Javaweb-Servlet

一.什么是ServletServlet(Servlet Applet),全称Java Servlert .是用Java编写的服务器端程序。其主要功能在与交互式的浏览和修改数据,生成动态Web内容。狭义的servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet的类,一般情况下,人们将Servlet理解为后者。比如HttpServlet类继承自Servle...

2018-10-08 14:17:34 194

转载 Java 网络通信-基本概括

一.网络通信的2种方式  1.TCP(传输控制协议)方式   TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据  2.UDP(用户数据报协议)方式  UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得  ...

2018-10-06 17:14:30 539

转载 饭饭泛博客学习

 原子操作AtomicInteger和AtomicLong、AtomicBoolean、AtomicReference等类存储相应的值AtomicIntegerFieldUpdater<T>/AtomicLongFieldUpdater<T>/AtomicReferenceFieldUpdater<T,V>是基于反射的原子更新字段的值相应的api...

2018-09-29 17:01:29 153

原创 java并发实践第0部分

1.线程有些时候比成为轻量级进程  lightweight process ,并且大多数线代操作系统把线程作为时序调度的基本单元,而不是进程。线程贡献所属进程的内存地址空间,所以同一进程中的所有线程访问相同的变量,并从一个堆中分配对象。2.不安全的线程竞争条件race conditionB线程恰好在A线程的value没加一的时候读取value,这使得最后的结果是A的value和...

2018-09-27 13:18:17 86

原创 effective java 第七天

57.只针对异常的情况才使用异常不要在正常的控制中使用异常:58.对可恢复的情况使用受检异常,对编程错误使用运行时异常Java程序设计语言提供了三种异常:1.受检异常;2.运行时异常;3.错误;59.避免不必要地使用受检的异常60.优先使用标准异常61.抛出与抽象相对应的异常异常翻译:异常链:62.每个方法抛出的异常都要有文档63.在...

2018-09-26 17:34:20 127

原创 effective java 第六天

46.for-each循环优于传统的for循环47.了解合使用类库48.如果需要精确的答案,避免使用float合double使用BigDecimal、int或者long来计算49.基本类型优于装箱基本类型区别:1.基本类型只有值;装箱类型具有和他们的值不同的同一性           2.基本类型只有功能完备的值,而装箱类型还具有一个null值         ...

2018-09-23 15:14:21 90

原创 effective java 第五天

35.注解优于命名模式:一般命名模式表明有些程序元素需要通过某种工具进行特殊处理。例如:JUnit测试框架要求用户一定要用test作为测试方法名称的开头。这种方法有几个严重的缺陷首先,文字拼写错误会导致失败,但是没有任何提示。比如,把方法名称命名写成tsetSafety而不是testSafety时。JUnit不错报错,但是也不会执行测试。其次,无法确保它们只用于相应的程序元素上。比...

2018-09-21 13:58:43 100

原创 effective java 第四天

26.优先考虑泛型27.优先考虑泛型方法尽量使用泛型来使程序规范。使得类型安全。这样使用泛型也是有缺点的,用通配符可以让方法更加灵活多变。编译器会做类型推导。类型擦除:https://www.cnblogs.com/drizzlewithwind/p/6101081.html28.利用有限制的通配符来提升API的灵活性PECS:https:/...

2018-09-20 18:46:11 175

原创 泛型

1.泛型只在编译阶段有效,在编译之后程序会采取去泛型化的措施。也就是说Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段。泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。2.泛型的几种形式1.泛型类:泛型类型用于类的定义中;...

2018-09-18 16:38:28 171

原创 effective java 第三天

16.复合优于继承不当的继承会导致软件的脆弱;在包内使用继承是安全的,因为都在程序员的掌控下;而对于普通的类,进行跨越包边境的继承是危险的(继承打破了封装性,如果父类的代码改变了,子类的代码虽然不变,但是也会被改变,遭到破坏),继承那些专门为继承设计的类是安全的。只有在存在is-a关系的时候,才使用继承。has-a就用复合。继承会把有缺陷的api传播给子类,而复合则可以写新的api来隐...

2018-09-18 16:05:52 77

原创 effective java 第二天

7.避免使用终结方法一个对象从变得不可到达开始,到他的终结方法被执行,所花费的这段时间是任意长的。所以在不同的JVM上,程序运行的表现可能会截然不同。不应该依赖终结方法来更新重要的持久状态。Java语言规范不仅不保证终结方法会被及时地执行,而且根本就不保证它会被执行。不要被System.gc()方法和System.runFinalization()两个方法所诱惑,因为他们确实增加了终结...

2018-09-17 14:46:05 119

原创 effective java 第一天

1.考虑用静态工厂方法替代构造器eg:https://blog.csdn.net/zhangshaoqiangchn/article/details/65442234服务接口:服务所需完成的工作服务实现类服务者接口:服务者需完成的工作服务者实现类注册API:Manager.regist()获得服务API:服务提供者.get服务()2.遇到多个构造器时要使用构建器...

2018-09-14 14:24:44 97

原创 Thinking in Java 第十三章“并发”要点总结

1.进程与线程进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部在 使用线程时,处理器将轮流...

2018-09-12 17:50:34 93

原创 设计模式(慢慢总结)

1.装饰者模式(decorator design pattern)典型的就是I/O里面。容易类爆炸。比如BufferedInputStream in = new BufferedInputStream(InputStream inputStream):就可以把所有的InputStream加上缓冲区。2.观察者模式有时又被称为模型-视图(View)模式、源-收听者(Listener)...

2018-09-03 14:38:27 211

原创 Thinking in Java 第十二章“Java I/O系统”要点总结

https://blog.csdn.net/weixin_38967434/article/details/800843281.File类 (更准确的是叫做FilePath类,因为它并不指代一个File)File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹。File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取...

2018-09-02 17:09:00 268

原创 自己写一个Map (实现Map接口并利用散列原理)

1.EntryMap是java中的接口,Map.Entry是Map的一个内部接口。Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V&g...

2018-09-02 17:02:29 1828

原创 Thinking in Java 第十一章“对象的集合”要点总结----容器

1.容器的大致分类Map:用来保存键值对Collection:用来保存单一元素 : 又分为 List 、 Set 、 Queue虚点框:接口虚线框:抽象类实线框:普通类粗线框:  常用实线 :一个类可以生成指向的那个类虚线:接口、抽象类之间的继承2.容器的打印不需要任何特殊操作容器的打印方法是在   abstractCollection   和   ab...

2018-08-31 16:59:30 157

原创 Thinking in Java 第十一章“对象的集合”要点总结----数组

1.数组数组的效率很高,但是其大小在创建时就会固定。因为数组有数组下标也就是序号,所以查询非常方便,只要你指定要哪个下标号码的值就行。增删效率低也是因为需要维护这个序号。链表不维护序号,所以增删直接操作,将前面指向他后面一个操作就完成了。但查询效率就低啊,得全链表扫描。数组只能存储某一特定类型的变量,所以编译时就会做类型检查,比较安全。C++不会对越界检查,而java中越界是一...

2018-08-31 15:42:52 86

原创 Thinking in Java 第十章“类型检查”要点总结

1.RTTI (runtime type indentification)当只有一个指向对象的基类的引用时,RTTI可以知道它的确切的类型。传统RTTI和反射。2.Class对象class对象包含类相关的所有信息,他可以用来创建类的常规对象。每当编译了一个新类,就会产生一个class对象(保存在同名的class文件中)。当我们想生成某个类的对象时,JVM就会检查这个类的clas...

2018-08-31 13:46:31 281

原创 Thinking in Java 第九章“异常与错误处理”要点总结

1.异常处理机制的好处2.Throwable中定义的printStackTrace()方法3.异常的默认输出方法再Throwable中getMessage()方法有点类似与toString()方法。4.异常说明把可能发生的异常throws在方法后面5.作弊6.重新抛出异常fillInStackTrace()更新,可以让输出不是原来异常抛出...

2018-08-30 18:02:07 141

空空如也

空空如也

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

TA关注的人

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