- 博客(58)
- 资源 (6)
- 收藏
- 关注
原创 java编程思想读书笔记 第十九章 枚举类型
关键字enum可以将一组具名的值的有限集合创建问一种新的类型,而这些具名的值可以作为常规的程序组件使用。1. 基本的enum的特性 1)enum的values()方法,可以遍历enum实例。values()方法返回enum实例的数组,而且该数组中的元素严格保持其在enum中声明时的顺序,因此可以在循环中使用values()返回的数组。 2)enum的ordinal()方法返回式一个int值,这个
2016-11-12 21:27:24
598
原创 java编程思想读书笔记 第十八章 java I/O系统(第五篇)
1. 压缩 压缩要注意的: 1)压缩类库是按字节方式而不是字符方式处理的; 2)尽管存在许多种压缩算法,但是Zip和GZIP是最常用; 3)Zip压缩和GZIP的区别:GZIP接口非常简单,适合对单个数据了进行压缩;Zip是适用于压缩多个文件的格式以及jar文件格式中。 4)Zip压缩和GZIP的共同点:Zip或GZIP库的使用并不仅仅局限于文件—它可以压缩任何东西,包括需要通过网络发送数
2016-11-09 22:06:01
573
原创 java编程思想读书笔记 第十八章 java I/O系统(第四篇 新I/O)
新的I/OJDK1.4的java.nio.*包中引入了新的javaI/O类库,其目的在于提高速度,旧的I/O包已经使用nio重新实现过,以便充分利用这种速度提高。因此,即便我们不显示的使用nio编写代码。也能从中受益。速度的提高在于所使用的结构更接近与操作系统执行的I/O方式:通道和缓冲器 ByteBuffer是唯一直接与通道交互的缓冲器,可以存储未加工字节的缓存器;java.nio.ByteBu
2016-11-07 21:52:31
648
原创 java编程思想读书笔记 第十八章 java I/O系统(第三篇)
1. 文件读写的工具 一一个很常见的程序化的任务就是读取文件到内存,修改,然后再写出。java I/O类库的问题之一就是:它需要编写相当多的代码去执行这些常用的工作–没有任何基本的帮助功能可以为我们做这一切。下面的例子是被用来简化对文件的读写操作。它包含的static方法可以向简单字符串那样写文本文件,并且可以创建一个TextFile对象,它用一个ArrayList来保存文件的若干行。public
2016-11-06 21:55:00
517
原创 java编程思想读书笔记 第十八章 java I/O系统(第二篇)
1.添加属性和有用的接口FilterInputStream和FilterOutputStream是用来提供装饰器类接口的以控制特定输入流和输出流的两个类。FilterInputStream和FilterOutputStream分别自I/O类库中的基类InputStream和OutputStream派生而来,这两个类是装饰器的必要条件。1.1 通过FilterInputStream从InputStre
2016-11-01 21:58:44
571
原创 java编程思想读书笔记 第十八章 java I/O系统(第一篇)
1. File类 File(文件)类这个名字有一定的误导性;我们可能会认为它指代的是文件,实际上却并非如此。塔既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称。如果它指的是一个文件集,我们就可以对此集合调用list()方法,这个方法会返回一个字符数组。我们很容易就可以理解返回的是一个数组而不是某个更具灵活性的容器,因为元素的个数是固定的,所以如果想取得不同的目录列表,只需要再创建一个
2016-10-30 20:21:20
513
原创 java编程思想读书笔记 第十六章 数组
数组,你可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变。1、数组为什么特殊 数组与其他种类的容器之间的区别有三方面:效率、类型和保存基本类型的能力。在Java中数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性序列,这使得元素访问非常快速。但是为这种速度所付出的代价是数组对象的大小被固定,并且在其生命周期中不可改变。 数组可以持有基本类型,
2016-10-27 22:16:53
677
原创 java编程思想读书笔记 第十五章 泛型(下)
1.异常 由于擦除的原因,将泛型应用于异常时非常受限的。catch语句不能捕获泛型类型的异常,因为在编译器和运行时都必须知道异常的确类型。切泛型类也不能直接或间接继承自Throwable。但是,类型参数可能会在一个方法的throws子句中用到。例如:interface Processor<T, E extends Exception> { void process(List<T> resu
2016-10-26 22:41:45
475
原创 java编程思想读书笔记 第十五章 泛型(自限定的类型)
1. 自限定的类型 在java泛型中,经常会出现如下的泛型写法:class SelfBounded<T extends SelfBounded<T>> SelfBounded类接受泛型参数T,而T由一个边界类限定,这个边界就是拥有T作为其参数的SelfBounded。这种写法的主要意义是保证类型参数必须与被定义的类相同。 1)古怪的循环泛型 不能直接继承一个泛型参数,但是,可以继承在其自己的定
2016-10-24 22:51:05
1680
原创 java编程思想读书笔记 第十五章 泛型(中)
1. 擦除的补偿 由于擦除丢失了在泛型代码中执行某些操作的能力,任何在运行时需要知道确切类型信息的操作都无法完成:public class Erased<T>{ private final int SIZE = 100; public static void f(Object arg){// if(arg instanceof T) { // 错误
2016-10-23 22:06:04
437
原创 java编程思想读书笔记 第十五章 泛型 (匿名内部类和擦除)
1.匿名内部类 泛型还可以应用于内部类以及匿名内部类。下面的例子使用匿名内部类实现了Generator接口:public class Customer { private static long counter = 1; private final long id = counter ++; private Customer (){ } pu
2016-10-22 22:08:16
1532
原创 java编程思想读书笔记 第十五章 泛型 (泛型方法)
泛型方法 首先需要知道的是,可以在类中包含参数化方法,而这个方法所在的类可以是泛型类,也可以不是泛型类。也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。泛型方法使得该方法能够独立于类而产生变化。一个基本原则是:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使事情更清楚明白。另外,对于一个 stat
2016-10-21 22:35:45
925
原创 java后台部署项目在was服务器上,取不到redis的资源
前段时间遇到一个问题,这个问题是这样的。在本地的tomcat服务器上运行项目,本地测试请求上传的时候,在redis队列中可以取到资源,但是部署到was服务器之后,当前端请求上传资源的时候,却发现取不到资源了。后来经过一番的排查,才发现是因为将json数据放到redis才取不到的。后来改成将json.toString()放入到redis就可以取到资源了。
2016-10-21 17:05:20
980
原创 java编程思想读书笔记 第十五章 泛型(上)
1. 泛型简介 & 与 C++比较 泛型实现了参数化类型的概念,使代码可以应用于多种类型。“泛型”这个术语的意思是:“适用于许多许多的类型”。泛型最初的目的是希望类或方法能够具备最广泛的表达能力。如何做到这点呢?正是通过解耦类或方法与所使用的类型之间的约束。 因为 Java 的设计者曾经说过:设计 Java 的灵感主要来自 C++。所以我们就拿 Java 和 C++做一下对比吧: 首先,了解
2016-10-20 22:32:24
554
原创 java编程思想读书笔记 第十四章 类型信息(下)
1. 反射:运行时类的信息 Class类与jsvs.lang.reflect类库一起对反射的概念进行了支持,该类库包含了Field、Method以及Constructor类(每个类都实现了Member接口)。这些类型的对象是由JVM在运行时创建的,用以表示未知类里对应的成员。这样就可以使用Constructor创建新的对象,用get()和set()方法读取和修改与Filed对象管理的字段,用inv
2016-10-19 22:10:16
419
原创 java编程思想读书笔记 第十四章 类型信息(中)
1.类型转换前先做检查 1)传统的类型转换,执行错误的类型转换,会抛出ClassCastException。 2)代表对象的类型的Class对象,通过查询Class对象可以获取运行时所需的信息。 3)IllegalAccessException表示违反Java安全机制。 4)向上转型可以不显式,向下转型要显式。 5)inatanceof只能与命名类型(就是类名)比较,不能与对象比较。 2
2016-10-18 22:33:35
435
原创 java编程思想读书笔记 第十四章 类型信息(上)
运行时类型信息可以使得在程序运行时发现和使用类型信息。Java在运行时识别对象和类信息的两种方式:一是RTTI,假定我们在编译时就知道了所有类型;二是“反射”机制,允许在运行时发现和使用类信息。 1、为什么需要RTTI RTTI:Run-Time Type Identification,运行时对象类型识别。 在Java中,所有的类型转换都是在运行时进行正确性检查的。这也是RTTI名字的含义:在
2016-10-17 21:44:26
420
原创 java编程思想读书笔记 第十三章 字符串(下)
1.扫描输入 从文件或标准输入读取数据的一般解决之道就是读入一行文本,对其进行分词,然后使用Integer、Double等类的各种解析方法来解析数据:public class SimpleRead { public static BufferedReader input = new BufferedReader(new StringReader("Sir Robin of Camelot\
2016-10-16 18:36:54
614
原创 java编程思想 第十三 章 String的格式化输出
1.格式化的输出 1.1System.out.format() Java SE5引入的format方法可用于PrintStream或者PrintWriter对象。其中也包括System.out对象。format()方法模仿自C的printf(),两者是等价的,以下展示三种方法输出坐标点:public class SimpleFormat {public static void main(
2016-10-13 22:36:37
569
原创 java编程思想读书笔记 第十三章 字符串(上)
1.不可变字符串 String对象是不可变的。String类中每一个看起来会修改String值的方法,实际上是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未变。 看看下面的代码:public class Immutable { public static String upcase(String s) { return s.t
2016-10-12 22:29:10
452
原创 java编程思想读书笔记 第十二章 通过异常处理错误(下)
1.异常的限制 当覆盖方法的时候,只能抛出在基类方法的异常说明里列出的那些异常。这意味着,当基类使用的代码应用到其派生类对象的时候,一样能够工资,异常也不例外。 下面的例子是在编译时施加在异常上面的限制: public class BaseBallException extends Exception {} public class Foul extends BaseBallExceptio
2016-10-11 22:26:46
1648
原创 java编程思想读书笔记 第十二章 通过异常处理错误(中)
1.捕获所有异常 可以只写一个异常处理程序捕获所有类型的异常。通过捕获异常类型的基类Exception(事实上还有其他的基类,但Exception是同编程活动相关的基类),就可以做到这一点:catch(Exception e) {System.out.println("Caught an exception");}这将捕获所有异常,所有最好把它放在处理程序列表的末尾,以防它抢在其他处理程序之前
2016-10-10 22:30:39
477
原创 java编程思想读书笔记 第十二章 通过异常处理错误(上)
java异常处理的目的在于通过使用少于目前数量的代码来简化大型、可靠的程序的生成,并且通过这种方式可以使你更加自信。本章将介绍如何编写正确的异常处理程序,并将展示当方法出问题的时候,如何产生自定义异常。1.概念 如果不使用异常,那么就必须检查特定的错误,并在程序中的许多地方处理它。而如果使用异常,那就不必在方法调用处进行检查,因为异常机制将保证能够捕获这个错误。并且,只需在一个地方处理错误,即所谓
2016-10-09 22:26:36
429
原创 java编程思想读书笔记 第十一章 持有对象(总结)
1.Collection和Iterator Collection是描述所有序列容器的共性的根接口,它可能会本认为是一个“附属接口”,即因为要表示其他若干个接口的共性而出现的接口。另外,java.util.AbstractCollection类提供了Collection的默认实现,使得你可以创建一个AbstractCollection的子类时,而其没有不必要的代码重复。 使用接口描述的一个理由是它
2016-10-08 22:26:09
542
原创 java编程思想读书笔记 第十一章 持有对象(下)
1.Set Set不保存重复的元素。如果你将相同的对象的多个实例添加到Set中,那么它就会阻止这种重复现象。Set中最常被使用的是测试归属性,你可以很容易地询问某个对象是否在某个Set中。正因如此,查找就成为了Set中最重要的操作,因此你通常都会选择一个HashSet的实现,它专门对快速查找进行了优化。Set和Collection完全一样的接口,因此没有任何额外的功能,不像前面两个不同的List。
2016-09-29 22:26:58
431
原创 java编程思想读书笔记 第十一章 持有对象(中)
1.容器的打印 你必须使用Arrays.toString()来产生数组的可打印表示,但是打印容器无需任何帮助。下面是一个例子,这个例子中也介绍了一些基本类型的容器:public class PrintingContainers { static Collection fill(Collection<String> collection){ collection.add("ra
2016-09-28 22:37:37
444
1
原创 java编程思想读书笔记 第十一章(上)
第十一章 持有对象Set对于每个值都只保存一个对象,map是允许你将某些对象与其他一些对象关联起来的关联数组,因此,与数组不同,在编程是,你可以将任意数量的对象放置到容器中,并且不需要担心容器应该设置为多大。容器类的基本类型是List,Set,Queue,Map。这些对象类型也成为集合类。1.泛型类和类型安全的容器 使用javaSE之前的容器的一个主要问题就是编译器允许你向容器中插入不正确的类型。
2016-09-27 22:32:01
477
原创 java编程思想读书笔记 第十章 内部类(下)
1.内部类的继承 因为内部类的构造器必须连接到指向其外围类对象的引用,所以在继承内部类的时候,必须使用特殊的语法来明确说清它们之间的关联: public class WithInner { class Inner{ } }public class IntheritInner extends WithInner.Inner{ IntheritInner(WithIn
2016-09-26 22:04:43
339
原创 java编程思想读书笔记 第十章内部类(中)
1.嵌套类 如果不需要内部类对象与其外围类对象之间的联系,那么可以将内部类声明为static。这通常称为嵌套类。想要理解static应用于内部类时的含义,就必须记住,普通的内部类对象隐式地保存了一个引用,指向创建它的外围类的对象。然而,当内部类时static时,就不是这样了。 嵌套类意味着:要创建嵌套类的对象,并不需要其外围类的对象;不能从嵌套类的对象中访问非静态
2016-09-25 22:03:13
504
原创 简单工厂模式和工厂方法模式的区别
本文举了一个计算器的例子,该例子实现的功能是加减乘除的功能。 简单工厂模式:就是如何去实例化对象的问题,对于很容易变化的问题,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。例子如下:package com.factory; public class Operation { private double numberA = 0; private double num
2016-09-24 22:33:02
11987
3
原创 java编程思想读书笔记 第十章 内部类(上)
可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。1、创建内部类 创建内部类的方式就如同你想的一样,把类的定义置于外围类的里面: public class Parcel1 { class Contents{ private int i = 11;
2016-09-23 22:31:28
483
原创 react的学习笔记1
第一个例子如下: 在这个例子要注意的事项如下: 1.在最后的一个 script 标签的 type 属性为 text/babel,这是因为 React 独有的 JSX 语法,跟 JavaScript 不兼容。凡是使用 JSX 的地方,都要加上 type=”text/babel” 。(JSX 文件中的功能由 Web Service 进行 XML 映射时调用) 2.上面代码一共用了三个库: re
2016-09-23 11:51:59
301
原创 服务器端提供下载图片接口事例
/** * 将二进制转换为图片 * @param base64String */ public static File base64StringToImage(String base64String){ try { byte[] bytes1 = Base64Utils.decodeFromString(base64String); Byt
2016-09-23 11:27:27
1314
原创 mybatis+springmvc+spring+oracle在使用的过程中要注意的细节
1.如果要使用HttpServletRequest或者HttpServletResponse,要实例化有三种方式,下面只说一种,就是使用注解注入,如: @Autowired private HttpServletResponse response;2.当数据库的某个字段类型为BLOB,对于的实体类属性要用byte[],如果对于的实体类的属性使用String,则会报错getString n
2016-09-23 11:13:10
594
原创 java编程思想读书笔记 第九章 接口
1、抽象类和抽象方法创建抽象类是希望通过这个通用接口操纵一系列类。如果一个类包含大于等于一个抽象方法,那么这个类就是抽象类,必须用abstract关键字来限定这个抽象类。 如果试图直接创建该抽象类的对象,编译器会报错。 如果抽象类的子类没有为基类的抽象方法提供定义,那么这个导出类依旧是抽象类。 抽象类也可以不包含任何抽象方法,单纯的用abstract限定类。(该类不能产生对象)2、接口 in
2016-09-22 22:25:06
391
原创 java编程思想读书笔记 第八章多态
第八章多态1.多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来,多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序。Java中除了static方法和final方法(private方法属于final方法),其他所有的方法都是后期绑定。这意味着通常情况下,我们不必判定是否应该进行后期绑定—它会自动发生。如果父类构造函数抛出异常,子类构造函数一定要抛出,不能被捕获。
2016-09-21 17:22:58
446
原创 springboot+springmvc+mybatis 使用xml文件来写增查改的sql
springboot+springmvc+mybatis 使用xml文件来写增查改的sql
2016-09-21 17:17:17
3652
原创 springboot+springmvc+mybatis 使用注解对数据库的增、改和查操作
springboot+springmvc+mybatis 使用注解对数据库的增、改和查操作
2016-09-21 16:43:46
5220
高仿茶百科源码
2015-11-12
使用ListView和异步加载来下载网络上的资源,然后用fastjson解析资源
2015-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人