自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (4)
  • 收藏
  • 关注

原创 Core Java -- Chapter 12 -- 并发

多线程和多进程的本质区别在于:每个进程都拥有自己的一整套变量,而线程则共享变量。 共享变量是线程之间的通信比进程之间的通信更有效,更容易。与进程先比较,线程更轻量级,创建、撤销一个线程比启动新进程的开销要小的多。...

2021-03-23 16:37:21 126

原创 Thinking In Java -- Chapter 15 -- 泛型

Java泛型的核心概念:告诉编译器想使用什么类型,然后编译器帮你处理一切细节。 //: generics/Holder3.javapublic class Holder3<T> { private T a; public Holder3(T a) { this.a = a; } public void set(T a) { this.a = a; } public T get() { return a; } public static void main(String

2021-03-22 22:43:42 97

原创 Thinking In Java -- Chapter 14 -- 类型信息

运行时类型信息使得你可以在程序运行时发现和使用类型信息。 那么Java是如何让我们在运行时识别对象和类的信息的呢?主要有两种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型;一种是“反射”机制,它运行我们在运行时发现和使用类的信息。 迄今为止,我们已知的RTTI形式包括:传统的类型转换,如“(shape)”,由RTTI确保类型转换的正确性,如果执行了一个错误的类型转换,就会抛出一个ClassCastException;代表对象的类型的Class对象,通过查询Class对象可以获取运行时

2021-03-21 23:13:28 87

原创 Thinking In Java -- Chapter 13 -- 字符串

不可变StringString对象是不可变的,String类中每一个看起来会修改String值得方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。格式化输出在Java中,所有新的格式化功能都由Formatter类处理,可以将Formatter看做一个翻译器,它将你的格式化字符串与数据翻译成需要的结果。 String.format()是一个static方法,它可以用来生成格式化的String对象。扫描输入Java SE5新增了S

2021-03-18 23:33:54 74

原创 Thinking In Java -- Chapter 12 -- 通过异常处理错误

异常链:常常会想要在捕获一个异常后抛出另一个异常,并且希望把原始异常的信息保存下来,这被称为异常链。 现在所有Throwable的子类在构造器中都可以接受一个cause对象作为参数。这个cause就用来表示原始异常,这样通过把原始异常传递给新的异常,使得即使在当前位置创建并抛出了新的异常,也能通过这个异常链追踪到异常初始发生的位置。Java标准异常:Throwable这个java类被用来表示任何可以作为异常被抛出的类。Throwable对象分为两个类型(指从Throwable继承而得到的类型):

2021-03-17 23:01:29 77

原创 Thinking In Java -- Chapter 11 -- 持有对象

迭代器:迭代器的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。例如,Java的Iterator()(只能单向移动)可以用来:使用方法Iterator()要求容器返回一个Iterator。Iterator将准备返回序列的第一个元素。 使用next()获得序列的下一个元素。 使用hasNext()检查序列中是否还有元素。 使用remove()将迭代器新近返回的元素删除。先看下例://: holding/SimpleIteration.javaimport t

2021-03-15 22:49:59 72

原创 Thinking In Java -- Chapter 10 -- 内部类

链接到外部类:当生成一个内部类的对象时,此对象与制造它的外部对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其外围类的所有元素的访问权。 内部类对象拥有对其外围类对象所有成员的访问权,这个是怎么实现的呢?当某个外围类的对象创建一个内部类对象时,此内部类对象必定会秘密的捕获一个指向那个外围类对象的引用。然后,在你访外围对象的成员时,就是在用这个引用来选择外围类的成员。那现在我们知道:内部类的对象只有只有与外围类的对象相关联的情况下才能被创建(就像你应该看

2021-03-11 23:23:31 117 3

原创 Thinking In Java -- Chapter 9 -- 接口

抽象类和抽象方法:抽象类是普通的类和接口之间的一种中庸之道。我们创建抽象类是希望通过这个通用接口操纵一系列类。抽象类中方法不一定都是抽象方法。我们可能会创建一个没有任何抽象方法的抽象类。 创建抽象类和抽象方法非常有用,因为它们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样来使用它们。抽象类还是很有用的重构工具,因为它们使得我们可以很容易将公共方法沿着继承层次结构向上移动。接口:接口是极度抽象的类,它没有提供任何具体实现,它允许创建者确定方法名,返回类型,参数列表,但是没有任何方法体。接口也

2021-03-10 22:49:09 99

原创 Thinking In Java -- Chapter 8 -- 多态

域与静态方法:只有普通方法的调用可以是多态的,域的访问操作不是多态的。如下例: //: polymorphism/FieldAccess.java// Direct field access is determined at compile time.class Super { public int field = 0; public int getField() { return field; }}class Sub extends Super { public int f

2021-03-09 23:18:50 120

原创 Thinking In Java -- Chapter 7 -- 复用类

继承语法:为了继承,一般的规则是将所有的数据成员定义成private,将所有的方法指定成public成员。 继承类如果对超类中的方法进行了修改,而又想使用超类中未被修改的方法,可以通过”super.”后面添加超类的方法名来调用。 当创建一个导出类的对象时,该对象包含一个基类的子对象。这个子对象与你用基类直接创建的对象是一样的。二者区别在于,后者来自于外部,而基类的子对象被包装在导出类的对象内部。Java会自动在导出类的构造器中插入对基类构造器的调用。即使你在导出类中不为基类创建构造器,编译器也会为你

2021-03-07 23:25:09 92 1

原创 Thinking In Java -- Chapter 6 -- 访问权限控制

包:库单元如果我创建了一个工具库,库中有一个工具类Print,在类中,通过public 加 static的形式定义了一些方法,那么通过静态导入后,就可以直接使用此方法,如下例是创建的工具类:package net.mindview.util;import java.io.*;public class Print { //print with a new line public static void print(Object obj) { System.out

2021-03-06 00:09:26 102 3

原创 Thinking In Java -- Chapter 5 -- 初始化与清理

方法重载:区分重载方法的规则很简单,每个重载的方法都必须有一个独一无二的参数类型列表。参数顺序的不同,也足以区分两个方法,但是一般情况下别这么做,这样会使代码难以维护。 关于参数是基本类型(char,byte,short,int,long,float,double)的重载,如果传入的数据类型小于方法中声明的形式参数类型,实际数据类型就会被提升。char略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升到int型。如果传入的实际参数大于重载方法声明的形式参数,就得通过类型转化来执行

2021-03-05 00:04:58 106 2

原创 Thinking In Java -- Chapter 4 -- 控制执行流程

逗号操作符:Java中唯一用到逗号操作符的地方就是for循环的控制吧表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,而且那些语句均会独立执行。初始化部分可以有任意数量的同一类型的定义。标签:在java中,需要使用标签的唯一理由就是因为循环嵌套存在,而且想从多重嵌套中break或continue。一般的continue会退回最内层循环的开头,并继续执行 带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环 一般的break会中断并跳出当前

2021-03-03 23:01:55 87 1

原创 Thinking In Java -- Chapter 3 -- 操作符

赋值:基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值时,是直接将一个地方的内容复制到了另一个地方。比如,对基本数据类型使用a=b,那么b的内容就复制给了a,这样即使a中的内容发生修改,b也不会受到这种修改的影响。 但是对对象进行赋值的时候,情况却发生了变化。对一个对象进行操作时,我们真正操作的是对对象的引用。所以,倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方,这意味着倘若对对象使用 c=d,那么c和d都指向原本只有d指向的那个对象。Random类

2021-03-02 23:13:05 62

原创 Thinking in Java -- Chapter 2 -- 一切都是对象

对象的创建:堆栈中存储的是对象引用,java系统需要知道堆栈中所有项的生命周期,以便上下移动堆栈指针来分配内存或是释放内存(堆栈指针向下分配内存,向上释放内存)。----RAM 存储 堆用于存放所有的java对象,编译器不需要知道存储的数据在堆中存活了多长时间。当代码执行到new时,会在堆中进行存储分配。但是堆中进行存储分配和清理要比堆栈中需要更多的时间。---RAM 存储 常量值一般直接存储在程序代码内部。--- 有时会存储在ROM中 如果数据完全存活在程序之外,那么它可以不受程序的任何控.

2021-03-01 22:52:40 113 4

原创 Java 中 将通过实体类创建Json数据

工作中的日常踩坑记录:先创建一个对象类,在其中定义好相应的属性。如下:然后主函数中创建相关对象并给其赋值:然后由于我想创建的json格式是一个object下包含两个member,所以实例化两个对象并保存到list中,然后再通过JSONArray.fromObject对list对象进行转化,最后输出。最终得到的结果如下:Over ~...

2020-04-15 16:10:36 2700

原创 VScode java项目中导入JSON相关的jar包

日常工作踩坑记录:一般需要导入的json相关的jar包总共有6个,如下所示:将下载好的jar包放到lib下(如果是新建的java project,那么lib需要自己创建),然后在.classpath中将jar包添加进去,如下所示:这里需要注意两个问题,导入的6个jar包中,关于“lang-2.6”和“collections-3.2.1”这两个jar包,如果你导入的是“lang-3”和“col...

2020-04-15 15:25:20 3219

转载 文件下载中文文件名不显示

使用response.setHeader("Content-Disposition","attachment;filename="+fName)下载文件,中文文件名无法显示的问题今天遇到这么一个情况,在Controller代码中进行文件下载:  其中file_name是中文,然后通过如下代码下载response.setContentType("appli

2017-09-01 15:02:04 1410

转载 Java解析(读取)Json数据

以前看过书上说,XML是web service间传输信息的标准格式吧,就看了看XML。最近在做个网站,又说是有了JSON,第一回听说就看了看,总结总结一下。1.JSON介绍  JSON比XML简单,主要体现在传输相同信息的情况下,文件的大小不同。  JSON只用于传输信息,XML还可以用于配置文件的使用。  JSON中的符号主要有: " , [ {:2.JS

2017-08-22 14:44:31 678

原创 通过jxl和itext 将excel转化成pdf

最近做一个东西需要将excel转化成pdf,在网上也看了不少博客和文章,发现好多是用poi+itext将excel转化成pdf,但是poi对excel操作我并没有看过,之前倒是用jxl对excel进行过操作,但是网上基本上没有jxl+itext将excel转化成pdf的案例,所以就自己看了一些itext生成pdf的案例,然后再结合jxl对excel的操作,终于实现了将excel转化成pdf的功能,

2017-08-14 15:10:23 6360 7

原创 java中的 continue 和 break

java中的continue和break

2017-08-08 16:17:12 346

原创 java对象赋值的“别名”问题

在对一个对象进行操作时,我们操作的实际是对对象的引用。所以倘若是“将一个对象赋值给另一个对象”,实际是将引用从一个地方复制到了另一个地方。这意味着,假如对对象使用 c = d ,那么c和d都是指向原本只有d指向的哪个对象。这个现象在方法调用中也很常见,将一个对象传递给方法时,也会产生“别名问题”,如下面的一段代码:class Letter{ char c ;}public c

2017-08-04 14:05:21 757

原创 关于static关键字的一些学习

static关键字

2017-08-04 11:12:57 202

原创 Java实现AD 部门和员工的增删改查

大体和java实现LDAP的部门和员工的增删查一样,这里将几点不一样的进行说明:1:AD中创建部门组时,部门组的objectclass属性为“group”。2: AD创建员工时,员工的objectclass属性为“user”。3: AD中往部门组添加员工时,添加的属性是“member”。4:AD创建员工时必须要设置userAccountControl属性,这个属性比较复杂,具体怎么

2017-08-03 16:45:41 2634 2

原创 java实现LDAP 部门和用户的增删改查 实现过程

上个星期,公司给分了个任务,要用java开发LDAP和AD操作工具,我这之前可是听都没听过这个东西,没办法只能求助于万能的百度,看了好多网上相关的博客和心得,编写时也遇见不少问题,因为公司要求实现部门和员工的增删改查功能,这里就将我在实现过程中遇到的疑惑和问题进行总结,关于LDAP和AD的基础知识,讲真我也没有细细研究,这里就不加讲述了。  LDAP的基本模型是建立在“条目”(Entry)的基础上

2017-08-03 15:26:21 13325 9

原创 java对象的作用域问题

Java对象不具备和基本类型一样的什么周期。例如下面这段代码: { String s = new String("a string"); }引用s在作用域终点就消失了,然而,s所指向的String对象仍继续占据内存空间。事实证明,有new创建的对象,只要你需要。就会一直保留下去。那么这就会带来一个有趣的问题,如果Java让对象一直存在,那么靠什么才能防止这些对象

2017-08-03 14:56:53 733

转载 java线程池

深入理解Java之线程池原作者:海子   出处:http://www.cnblogs.com/dolphin0520/    本文归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。       在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题

2017-03-02 10:02:06 171

jdk-11中文api修订版.zip

CSDN动不动下个文档就几十分我也是醉了,这个资源免费啊,大家随意

2021-03-23

Java核心技术 最新源码

一起学习

2021-03-22

Thinking In Java 源码

免费下载,各位老铁咱们一起努力,一起秃头

2021-03-02

【免费】commons-codec-1.10 官方最新JAR包

commons-codec-1.10 官方最新JAR包

2017-08-10

空空如也

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

TA关注的人

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