Show Me The Code -- break和continue
以下为源代码:
package test;
public class BreakTest {
public static void main(String[] args) {
System.out.println("-------------break-------------");
for(int i = 0 ; i<10 ; i++){
if(i==5) break;
System.out.println("number : "+ i);
}
System.out.println("-------------continue-------------");
for(int i = 0 ; i<10 ; i++){
if(i==5) continue;
System.out.println("number : " ...
Show Me The Code -- excel解析的两种方法
概述
java对excel进行解析有两种常见的方法:jxl和POI
jxl:java Excel api 是一个开放源码的项目,它本身是由java编写的,所有对平台没有要求。
POI:Apache的一个开源项目,POI存在一些小的bug,并且对图片的处理并不友好,其优势在于对公式的支持比较完善。
对比两者的一些结论:jxl对于java开发者来说还是更合适一些,它在图片处理方面也具有优势,并且当所处理的excel文档本身比较小时它在性能上也优于POI,只是在对公式或者宏的兼容上不如POI,POI在excel文档体积大时具有性能上的优势。
下面展示两种方法对excel文件的基本读写功能
所需jar
jxl只需要一个jar,剩下的三个都是对POI的支持,所以真正使用的时候,jxl的jar包更容易被导入项目,对POI来说最好的方法是到Apache官网上下载他的完整资源包,然后得到三个版本匹配的jar,不同版本的jar可能出现兼容性问题
code
jxl
package com.firefly.jxl;
import java.io.File;
import java.io.IOExcepti ...
Show Me The Code -- 设计模式--代理
简述:代理模式的实现是,被代理的类和代理类同时继承一个抽象类,代理类拥有被代理类的对象在重写的方法中调用被代理类的方法,这个过程中加上一些需要的操作
抽象类:
package com.firefly.proxy;
public abstract class Father {
public abstract void operation();
}
被代理类:
package com.firefly.proxy;
public class User extends Father{
@Override
public void operation() {
System.out.println(" user do it !!!");
}
}
代理类:
package com.firefly.proxy;
public class Proxy extends Father{
@Override
public void operation() {
System.out.println("something pr ...
Show Me The Code -- 设计模式--单例
简述:单例指一个类只允许拥有一个对象,而且这个对象是它自己进行实例化然后向整个系统提供出来,这样我们把它称为单例类。
结构和特点:只有一个实例;这个实例必须自己创建;为其他的所有对象提供这个实例;
使用场景:计数器、加载配置文件信息的类
饿汉式:
package com.firefly.singleton;
public class EagerSingleton {
private static EagerSingleton es = new EagerSingleton();
private EagerSingleton(){
System.out.println(" eager singleton");
}
public static EagerSingleton getInstance(){
return es;
}
}
懒汉式:
package com.firefly.singleton;
public class LazySingleton {
private static ...
十年一剑 -- Java版本迭代
Java版本更新历史以及内容Java的前身叫oak在1991年代时候创建,并不成功,在1995年的时候改名为Java,并提出了write once,run anywhere
1991-JDK1.0Sun Class JVM、Applet、AWT
1997-JDK1.1JAR、JDBC、JavaBeans、RMI、Inner Class、Reflection
1998-JDK1.2
J2SE
j2ee
j2me
jit
collections
jfc
swing1.0
java2d
java plug-in
ejb
java idl
字符串常量做内存映射
对打包的Java文件进行数字签名
控制授权访问系统资源的策略工具
2000-JDK1.3
数学运算
Timer api
java sound api
corba iiop实现rmi的通信协议
jar文件索引2002-JDK1.4
正则表达式
nio
logging
xml解析器
断言
jdbc3.0
ipv62004-JDK1.5
自动装箱拆箱
泛型
注解
instrumentation
枚举
foreach(增强循环)
并发2006 ...
十年一剑 -- 基本数据类型
java的8中基本数据类型
byte -127 - 127 8位1个字节
short 16位2个字节
int 32位4个字节
long 64位8个字节
float 32位
double 64位
char
boolen
byte为什么只能表示-127到127,一个byte是8位第一位用来表示正负数,所以是2的7次方
原码:计算机表示数字的代码
反码:正数的反码是自己本身,负数的反码是除符号位(第一位)以外的取相反值
补码:正数的补码是自己本身,负数的补码是它的反码加1
原码 反码 补码
1 0000 0001 0000 0001 0000 0001
-1 1000 0001 1111 1110 1111 1111
十年一剑 -- 面向对象思想
一、三大特性
封装:利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
继承:继承应该遵循里氏替换原则,自雷对象必须能够替换掉所有父类对象。
多态
编译时多态:主要指方法的重载
运行时多态:程序中定义的对象引用所指向的具体类型在运行期间才确定
二、类图(这里只简单介绍)
泛化关系:Java中的继承
实现:Java中对接口的实现
聚合:表示整体由部分组成,但不是强依赖,整体不存在了部分还是会存在,比如电脑由显示器、主机、键盘鼠标等聚合在一起
组合:强依赖,整体不存在了,部分也就不存在了,比如公司和部门
关联关系:一对一、一对多、多对多
依赖:依赖是在运行过程中起作用,比如a类是b类的一个局部变量
三、设计原则
单一责任原则
修改一个类的原因应该只有一个
就是一个类只负责做一件事情,如果一个类承担了过多的职责会增加耦合
开放封闭原则 ...
基础 -- Java笔记1--类反射
Java笔记1–类反射
2016年1月20日
13:32
什么是类反射?为什么要有类反射?类反射能做什么?
首先java是一种静态的语言,即它在编译后便不会再作出改变,这让它有了很高的安全性,但这也会降低它的灵活性。
类反射机制是让一个java类在运行时还能对它的状态进行调整的机制,这在一定程度上弥补了它灵活性不足的缺点。
类反射能对类进行各种操作:
1.获取一个对象的类型:
12345678910111213141516171819202122232425262728293031
package com.firefly.classreflect.pojo; public class Student { private int id; public String name; public int getId() { return id; } public void setId(int id) { this.id = id; } pub ...
基础 -- Java笔记10--XML解析
Java笔记10–XML解析
2016年1月20日
15:56
几个常见名词间的关系图
DOM和SAX是模型、JAXP实现了他们两的接口、JDOM和DOM4J是DOM的分支、Xerces和Crimson是继承自JAXP的实现。
DOM–文档对象模型(document object module)
基于树和节点的文档对象模型称为DOM。
DOM解析器吧XML文档转化为一个包含内容的树,并可以对树进行遍历。
优缺点:编程容易,调用建树指令,可以很容易的添加和修改树中的元素。处理大型文件是其性能下降的非常厉害,因为它在解析文件之前把整个文档装入内存,可以想象其面对大文件时的尴尬。
SAX–事件驱动模型
基于事件的xml简单API称为sax(simple API for xml)
Sax不需要一次全部装载整个文件,当遇到一个像文件开头、结尾或者是标签的开头与结束时,它会触发一个事件,适合对xml的顺序访问。
JAXP–DOM和SAX接口的实现
Sun公司提供了JAXP(java API for xml parsing)来实现DOM 和SAX接口,同时具有了他们两的解析能力,其实是完成了堆 ...
基础 -- Java笔记13--虚拟机之类文件
类文件结构
概述:计算机发明的时候它只认识0和1,经过这么多年的高速发展,它仍然只认识0和1,但我们将编写的程序编译成二进制本地机器码已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式;Java就是为了跨平台而诞生的,而现在,Java虚拟机更加强调语言无关性,因为平台无关性已经成为语言的共性而不能作为Java存活的保证了,语言无关性值Java虚拟机接受执行非Java语言程序;也许日后虚拟机的语言无关性会超越它在平台无关性上的优势;
class类文件结构–以下为一个简单类的class文件:(Class文件是采用一种类似于c语言结构体的伪结构来存储数据的,这种结构中只有两种数据类型:无符号数和表;无符号数以u1、u2、u4、u8分别表示1、2、4、8个字节的无符号数,无符号数是可以表示数字、引用、数量值或者按照UTF-8编码构成的字符串值的基本数据类型;表是有多个无符号数或者其他表构成的复合数据类型)
魔数:每个class文件的头4个字节称为魔数,它的唯一作用是确定这个文件是否为一个能被虚拟机接受的class文件, ...