JAVA学习
小峰峰疯疯的
学生
展开
-
JDK5新特性之泛型
概述 泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。 格式: <数据类型> 此处的数据类型只能是引用类型。 好处: A:把运行时期的问题提前到了编译期间 B:避免了强制类型转换 C:优化了程序设计,解决了黄色警告线 泛型在哪些地方使用原创 2016-02-29 12:38:04 · 840 阅读 · 0 评论 -
BigInteger
System类包含一些有用的类字段和方法。它不能被实例化。 方法: public static void gc():运行垃圾回收器。 public static void exit(int status): 终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。 public static long cu原创 2016-02-25 14:46:07 · 235 阅读 · 0 评论 -
Random
Random:产生随机数的类 构造方法: public Random():没有给种子,用的是默认种子,是当前时间的毫秒值 public Random(long seed):给出指定的种子 给定种子后,每次得到的随机数是相同的。 成员方法: public int nextInt():返回的是int范围内的随机数 publ原创 2016-02-25 13:46:36 · 418 阅读 · 0 评论 -
Math
Math:用于数学运算的类。 成员变量: public static final double PI public static final double E 成员方法: public static int abs(int a):绝对值 public static double ceil(double a):向上取整原创 2016-02-25 13:37:16 · 244 阅读 · 0 评论 -
正则表达式
概述 校验qq号码. 1:要求必须是5-15位数字 2:0不能开头 分析: A:键盘录入一个QQ号码 B:写一个功能实现校验 C:调用功能,输出结果。package cn.itcast_01;import java.util.Scanner;public class RegexDemo { public s原创 2016-02-25 12:58:52 · 696 阅读 · 1 评论 -
其他流
操作基本数据类型的流 可以读写基本数据类型的数据 数据输入流:DataInputStream DataInputStream(InputStream in) 数据输出流:DataOutputStream DataOutputStream(OutputStream out) package cn.itcast_01;import java.i原创 2016-03-10 14:26:43 · 267 阅读 · 0 评论 -
Properties集合
Properties:属性集合类。是一个可以和IO流相结合使用的集合类。 Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 是Hashtable的子类,说明是一个Map集合。package cn.itcast_08;import java.util.Properties;import java.util.Set;public class Prop原创 2016-03-10 14:49:43 · 2016 阅读 · 0 评论 -
Integer
概述 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来 需求2:我要求大家判断一个数据是否是int范围内的。 首先你的知道int的范围是多大? 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。 byte Byte short原创 2016-02-23 21:42:20 · 306 阅读 · 0 评论 -
Character
概述 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来 需求2:我要求大家判断一个数据是否是int范围内的。 首先你的知道int的范围是多大? 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。 byte Byte short原创 2016-02-23 21:41:45 · 339 阅读 · 0 评论 -
StringBuffer
概述 线程安全(多线程讲解) 安全 -- 同步 -- 数据是安全的 不安全 -- 不同步 -- 效率高一些 安全和效率问题是永远困扰我们的问题。 安全:医院的网站,银行网站 效率:新闻网站,论坛之类的 StringBuffer: 线程安全的可变字符串。 StringBuffer和String的区别?原创 2016-02-19 15:37:29 · 316 阅读 · 0 评论 -
字符转换流
编码表由于字节流操作中文不是特别方便,所以,java就提供了转换流。 字符流=字节流+编码表。计算机只能识别二进制数据,早期由来是电信号。为了方便应用计算机,让它可以识别各个国家的文字。就将各个国家的文字用数字来表示,并一一对应,形成一张表。ASCII:美国标准信息交换码。用一个字节的7位可以表示。ISO8859-1:拉丁码表。欧洲码表 用一个字节的8位表示。GB原创 2016-03-04 19:53:54 · 302 阅读 · 0 评论 -
String
概述字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。通过查看API,我们可以知道 A:字符串字面值"abc"也可以看成是一个字符串对象。 B:字符串是常量,一旦被赋值,就不能被改变。构造方法: public String():空构造 public String(byte[] bytes):把字节数组转成字符串原创 2016-02-17 19:18:34 · 346 阅读 · 0 评论 -
JDK7新特性
package cn.itcast_03;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;public class Demo { public static void main(String[] args) {原创 2016-03-16 12:26:57 · 275 阅读 · 0 评论 -
System
System类包含一些有用的类字段和方法。它不能被实例化。 方法: public static void gc():运行垃圾回收器。 public static void exit(int status): 终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。 public static long cu原创 2016-02-25 14:46:33 · 492 阅读 · 0 评论 -
BigDecimal
看程序写结果:结果和我们想的有一点点不一样,这是因为float类型的数据存储和整数不一样导致的。它们大部分的时候,都是带有有效数字位。 由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。package cn.itcast原创 2016-02-25 15:02:58 · 262 阅读 · 0 评论 -
Date、DateFormat
Date概述 Date:表示特定的瞬间,精确到毫秒。 构造方法: Date():根据当前的默认毫秒值创建日期对象 Date(long date):根据给定的毫秒值创建日期对象package cn.itcast_01;import java.util.Date;public class DateDemo { public static void main原创 2016-02-25 15:58:18 · 292 阅读 · 0 评论 -
网络编程
网络编程三要素网络编程三要素: A:IP地址 B:端口 C:协议举例: 我想和林青霞说话了。肿么办? A:我要找到林青霞。 B:对她说话,要对耳朵说。 C:我说什么呢?"I Love You" 但是,她没学过英语,听不懂。 我没必要说英语,说汉语就可以了:我爱你IP地址: 网络中计算机的唯一标识。 计算机只原创 2016-03-15 15:35:02 · 268 阅读 · 0 评论 -
GUI
Graphical User Interface(图形用户接口)awt和swing包的概述java.awt: Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。javax.swing: 在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。GUI继承体系图Frame设置属原创 2016-03-14 19:18:59 · 308 阅读 · 0 评论 -
集合的toString()方法源码解析
代码: Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add("java"); System.out.println(c);为什么c输出的不是地址值呢? A:Collection c = new ArrayList(); 这是多态,所以输出c的toStr原创 2016-02-29 20:49:24 · 3204 阅读 · 0 评论 -
List的子类
ArrayList功能与List一样Vector特有功能 1:添加功能 public void addElement(Object obj) -- add() 2:获取功能 public Object elementAt(int index) -- get() public Enumeration elements()原创 2016-02-29 11:49:31 · 448 阅读 · 0 评论 -
Arrays
针对数组进行操作的工具类。比如说排序和查找。 1: public static String toString(int[] a) 把数组转成字符串 2: public static void sort(int[] a) 对数组进行排序 3: public static int binarySearch(int[] a,int key) 二分查找package cn.itcast_05;i原创 2016-02-19 18:01:19 · 239 阅读 · 0 评论 -
JDK5新特性之可变参数
可变参数:定义方法的时候不知道该定义多少个参数 格式: 修饰符 返回值类型 方法名(数据类型… 变量名){ } 注意: 这里的变量其实是一个数组 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个package cn.itcast_03;public class ArgsDemo原创 2016-02-29 13:25:24 · 837 阅读 · 0 评论 -
JDK5新特性之静态导入
静态导入 格式:import static 包名….类名.方法名; 可以直接导入到方法的级别 静态导入的注意事项: A:方法必须是静态的 B:如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。package cn.itcast_02;import static java.lang.Math原创 2016-02-29 13:11:06 · 684 阅读 · 0 评论 -
JDK5新特性之增强for
增强for JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举 增强for:是for循环的一种。 格式: for(元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素 } 好处:简化了数组和集合的遍历。 弊端: 增强for的目标不能为null。 如何解决呢?对增强for原创 2016-02-29 13:09:45 · 273 阅读 · 0 评论 -
多线程(三)
线程池 线程池的好处:线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。 如何实现线程的代码呢? A:创建一个线程池对象,控制要创建几个线程对象。 public static ExecutorService newFixedThreadPool(int nThreads) B:这种线程池的线原创 2016-03-12 10:55:13 · 283 阅读 · 0 评论 -
多线程(二)
JDK5—Lock 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 Lock: void lock(): 获取锁。 void unlock():释放锁。 ReentrantLock是Lock的实现类。package原创 2016-03-11 15:55:12 · 291 阅读 · 0 评论 -
多线程
概述 进程: 正在运行的程序,是系统进行资源分配和调用的独立单位。 每一个进程都有它自己的内存空间和系统资源。 线程: 是进程中的单个顺序控制流,是一条执行路径 一个进程如果只有一条执行路径,则称为单线程程序。 一个进程如果有多条执行路径,则称为多线程程序。 举例: 扫雷程序,迅雷下载 大家原创 2016-03-11 13:02:04 · 289 阅读 · 0 评论 -
Calendar
概述 Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。 public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。注: 月份的范围是0-11,如set(2015,2,1),实原创 2016-02-25 17:05:21 · 236 阅读 · 0 评论 -
JDK5新特性之枚举
概述是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。回想单例设计模式:单例类是一个类只有一个实例那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例。这才能是枚举类。自定义枚举类第一版package cn.itcast_01;public class Direction { // 创建几个实例 publi原创 2016-03-16 12:14:17 · 343 阅读 · 0 评论 -
设计模式
设计模式的几个要素 名字 必须有一个简单,有意义的名字 问题 描述在何时使用模式 解决方案 描述设计的组成部分以及如何解决问题 效果 描述模式的效果以及优缺点设计模式的分类 创建型模式 对象的创建 结构型模式 对象的组成(结构) 行为型模式 对象的行为创建型模式:简单工厂模式,工厂方法模式,抽象工原创 2016-03-14 11:04:02 · 311 阅读 · 0 评论 -
类加载器、反射、动态代理
类的加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。 连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配原创 2016-03-16 10:13:56 · 409 阅读 · 0 评论 -
Collection
Collection Collection:是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的,有无序的。(后面会慢慢的讲解) Collection的功能概述:添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个集合的元素删除功能 void clear():原创 2016-03-02 22:55:39 · 335 阅读 · 0 评论 -
集合类
概述集合的由来 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。 而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢? 数组和StringBuffer。但是呢?StringBuffer的结果是一个字符串,原创 2016-03-02 22:56:39 · 280 阅读 · 0 评论 -
File
概述 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。 而Java就提供了一个类File供我们使用。 File:文件和目录(文件夹)路径名的抽象表示形式 构造方法: File(String pathname):根据一个路径得到File对象 File(String parent, String child):根据一个目录和一个子文件/目录得到File原创 2016-03-02 20:56:47 · 337 阅读 · 0 评论 -
异常
异常概述 程序的异常:Throwable 严重问题:Error 我们不处理。这种问题一般都是很严重的,比如说内存溢出。 问题:Exception 编译期问题:不是RuntimeException的异常 必须进行处理的,因为你不处理,编译就不能通过。 运行期问题:RuntimeException 这种问题我们也不处理,原创 2016-03-02 19:19:17 · 362 阅读 · 0 评论 -
集合框架总结
1:集合(自己补齐) Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢原创 2016-03-02 14:24:31 · 272 阅读 · 0 评论 -
Set及其子类
概述 Collection |--List 有序(存储顺序和取出顺序一致),可重复 |--Set 无序(存储顺序和取出顺序不一致),唯一 HashSet:它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。 注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序,原创 2016-03-01 14:26:42 · 3921 阅读 · 1 评论 -
Map及其子类
Map概述 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢? 如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称。 但是呢,如果我都能把学生姓名拿出来了,我还需要根据编号去找吗? 针对我们目前的这种需求:仅仅知道学号,就想知道学生姓名的情况原创 2016-03-01 22:22:03 · 906 阅读 · 0 评论 -
面向对象(一)
面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性。在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能封装到相应的方法中。这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢?通过前面的讲解我们知道类是可以存放方法的,所以,我们就考虑使用类封装来这多个方法,将原创 2016-01-13 20:39:57 · 233 阅读 · 0 评论 -
Java语法基础(四)
方法定义及格式在很多语言里面都有函数的定义函数在Java中被称为方法格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 函数体; return 返回值; }class FunctionDemo { public static void main(String[] arg原创 2016-01-12 15:37:53 · 311 阅读 · 0 评论