JAVA学习笔记整理五(JAVA常用类库)

原创 2016年05月30日 21:03:13

常用包介绍

java.lang: ava语言核心包,包含java 最基础的类

java.util:包含一系列的工具类, 数据结构的支持工具

java.io:包含着支持输入/输出操作的类

java.net:Network,TCP/IP,socket网络编程

java.awt:AWT GUI 设计,事件操作

java.text :提供国际化(i18n)支持

java.security :支持密文安全性

java.rmi :RMI,支持分布式编程

java.sql :包含支持使用标准sql的数据库访问功能的类

java.applet: Applet类库

Javax.*: java类库扩展

Java.lang包介绍是Java语言的核心包,其中包括了一些最重要的基本类,没有java.lang就无法编写最基本的程序,java.lang包是唯一不需要在程序中用import引入的包

1.    Obejct:所有类的父类

2.    类型包装类:由基本的数据类型扩展来,如int--Integer等,八大基本类型的包装类

 类型包装类的作用:

 1、保存一个对应类型的数据范围:最大值、最小值

 2、完成不同数据类型间的转换

       String s =Double.toString(0.08);

       int i =Integer.parseInt(“123”);

      doubled=Double.valueOf(“12.16”).doubleValue();

3、需要执行对象操作的地方:如List,Map,HttpSession等

4、封装对应类型的特殊功能:如:Integer.toBinaryString(123);

public class TestBoxing {
	public static void main(String[] args) {
		String str = "";
		test(str);
		int a = 0;
		test(a);// 自动装箱, 就是将int类型的a变量转换为Integer 
		Integer i =new Integer(a);//将int类型的a变量转换为Integer
		test(i);
		
		Integer i1 = 10;
		long l = 20;
		Long l1 = 20L;//需要加上L
		double d = 3.12;
		Double d1 = 3.12D;//需要加上D
		a = i1 + 20;// 自动插箱 自动将i1转化位int类型(即a=i1.intValue()+20)
		System.out.println("a=i1.intValue()+20" + a);
		System.out.println("利用*.valueof()方法转换后计算:" + Integer.valueOf("100")+10);
		//利用*.valueof()方法可将格式符合的字符串转换为对应类型
		String str1=String.valueOf(10);//或者将基本数据类型等转换为字符串形式
		
		boolean b1 = new Boolean(true);
		Boolean b2 = new Boolean(true);
		System.out.println("b1==b2地址比较:" + (b1 == b2));//直接比较的是地址
		System.out.println("b1==b2值比较:" + (b1 == b2.booleanValue()));//b1与b2的值进行比较
		Boolean b3 = new Boolean(true);
		System.out.println("b2==b3地址比较:" + (b2 == b3));//地址比较
		System.out.println("b2==b3值比较:" + (b2.booleanValue() == b3.booleanValue()));//值比较
		
		int x=100;
		System.out.println("二进制:"+Integer.toBinaryString(x));//转换为二进制
		System.out.println("十六进制:"+Integer.toHexString(x));//转换为十六进制
		System.out.println("八进制:"+Integer.toOctalString(x));//转换为八进制
	}

	private static void test(Object obj) {
		System.out.println("对象的类型为:" + obj.getClass().getName());
	}
}

//对象的类型为:java.lang.String
//对象的类型为:java.lang.Integer
//对象的类型为:java.lang.Integer
//a=i1.intValue()+2030
//利用*.valueof()方法转换后计算:10010
//b1==b2地址比较:true
//b1==b2值比较:true
//b2==b3地址比较:false
//b2==b3值比较:true
//二进制:1100100
//十六进制:64
//八进制:144

3.    Math类:数学计算,声明为final,构造方法为私有的,不能实例化,所有方法都是static型的,用来完成常用的数学运算

public class TestMath {
	public static void main(String[] args) {
		//Math类中的方法都是静态方法,直接使用“类名称.方法名称()的形式即可调用”
		System.out.println("在(10, 20)中返回大数:"+Math.max(10, 20));//在(10, 20)中返回大数:20
		System.out.println("在(10, 20)中返回小数:"+Math.min(10, 20));//在(10, 20)中返回小数:10
		System.out.println("求10的3次方:"+Math.pow(10, 3));//求10的3次方:1000.0
		System.out.println("求100的平方根:"+Math.sqrt(100));//求100的平方根:10.0
		System.out.println("3.54舍去小数:"+Math.floor(3.54));//3.54舍去小数:3.0
		System.out.println("3.14小数部分舍去后+1:"+Math.ceil(3.14));//3.14小数部分舍去后+1:4.0
		System.out.println("3.51四舍五入:"+Math.round(3.51));//3.51四舍五入:4
	}
}

// 在(10, 20)中返回大数:20
// 在(10, 20)中返回小数:10
// 求10的3次方:1000.0
// 求100的平方根:10.0
// 3.54舍去小数:3.0
// 3.14小数部分舍去后+1:4.0
// 3.51四舍五入:4

4.    System类:系统功能类,主要提供下列功能

    1)  系统的标准输入、输出:System.in,System.out,System.err

    2)  获取系统信息:System.currentTimeMillis()

    3)  执行系统操作:System.exit(0)、System.gc();

public class TestSystem {
	public static void main(String[] args) {
		System.out.println("使用System输出内容");
//		System.gc();//垃圾回收,强制性释放空间
		
		long start = System.currentTimeMillis();//获取当前系统的时间
		for (int i = 0; i < 1000000000L; i++) {
			double d = 1.1233432 * 0.98992734;
		}
		long end = System.currentTimeMillis();//执行计算后的系统时间
		System.out.println("end-start=" + (end - start));//计算所用去的时间
		System.err.println("红色的");//“标准”错误输出流。

		System.exit(0);// 表示结束当前程序,之后的代码不再执行
		Properties pro = System.getProperties();//返回当前的系统属性
		pro.list(System.out);//以列表形式返回
		System.out.println("--------------");
	}
}

//使用System输出内容
//红色的end-start=4664

5.    String与StringBuffer

String一旦声明则不可更改,如果要改变则肯定改变的是String的引用地址,所以一个字符串经常改变,就必须用StringBuffer类,而StringBuffer只能使用append方法进行字符串的连接,性能较高。StringBuffer类中定义的大部分方法名称都与String一样。

public class StringBufferTest {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer();
		buf.append("Hello ").append("World").append("!");
		System.out.println("buf:" + buf);
		System.out.println("在指定的首位添加内容:" + (buf.insert(0, "My ")));
		System.out.println("在指定的末位添加内容:" + (buf.insert(buf.length(), "!!")));
		String str = buf.reverse().toString();//转换为String类型输出
		System.out.println("字符串反转操作:" + str);
		buf.reverse();//反转回来
		System.out.println("利用replace()替换指定内容:" + buf.replace(9, 14, "wxq"));//指定要替换的内容的起始位置
		String str1 = buf.substring(9, 12);//指定截取范围,截取内容并转换为String类型
		System.out.println("截取的内容:" + str1);
		System.out.println("截取之后的buf:" + buf);
		String str2 = buf.delete(8, 12).toString();//删除指定范围内的内容后转为String
		System.out.println("删除之后的内容:" + str2);
		System.out.println("删除之后的内容:" + buf);
		if (buf.indexOf("Hello") == -1) {// 没有查找到会返回-1
			System.out.println("没有查找到指定内容");
		}else{//不为-1表示查找到指定内容
			System.out.println("可以查找到指定内容");
		}
	}
}

//buf:Hello World!
//在指定的首位添加内容:My Hello World!
//在指定的末位添加内容:My Hello World!!!
//字符串反转操作:!!!dlroW olleH yM
//利用replace()替换指定内容:My Hello wxq!!!
//截取的内容:wxq
//截取之后的buf:My Hello wxq!!!
//删除的内容:My Hello!!!
//删除之后的内容:My Hello!!!
//可以查找到指定内容

Java.uitl包介绍是Java组件中最有用的包,这个包中包含着多个常用类,可以用于在你的程序中以不同的方式管理数据和完成一些常用操作,该包中包含的类主要有:

1.    Date:表示日期和时间,大部分方法已过期(deprecated)(日期操作类1,代码见Java.text包处)

2.    Calendar日历,获取当前日期和时间,完成对日期和时间的各种操作,是抽象类不能被实例化(日期操作类2,代码见Java.text包处)

3.    Random:用于生成各种类型的随机数


4.    Arrays:用于对数组的操作


5.    Locale:封装了各个国家,用于支持国际化,一般不需实例化,如:Locale china=Locale.CHINA

各个国家都有对应的ISO编码,例如,中国编码为zh-CN、英语-美国编码为en-US、法语编码为fr-FR(获取:【工具】→【Internrt选项】→【常规】→【语言】→【添加】)

6.    ResourceBundle:读取属性文件,一般与Locale一起使用

import java.util.Locale;
import java.util.ResourceBundle;

public class ResBundleDemo {
	public static void main(String[] args) {
		//通过指定属性文件实现国际化
		Locale zhLocale = new Locale("zh", "CN");//指定语言与国家,此处表示中国地区
		Locale enLocale = new Locale("en", "US");//表示美国地区
		Locale frLocale = new Locale("fr", "FR");//表示法国地区
		ResourceBundle zhBundle = ResourceBundle.getBundle("org.wxq.t14_colection.Message", zhLocale);//找到中文的属性文件
		ResourceBundle enBundle = ResourceBundle.getBundle("org.wxq.t14_colection.Message", enLocale);//找到英文的属性文件
		ResourceBundle frBundle = ResourceBundle.getBundle("org.wxq.t14_colection.Message", frLocale);//找到法文的属性文件
		System.out.println("指定中文:" + zhBundle.getString("message.hello"));
		System.out.println("指定英文:" + enBundle.getString("message.hello"));
		System.out.println("指定法文:" + frBundle.getString("message.hello"));		
	}
}

//指定中文:你好世界!
//指定英文:Hello World!
//指定法文:Bonjour!

7.    数据结构类:封装了对各种数据结构的操作,形成一个完整的框架,包括Collection,List,Set,Map,Iterator等接口和对应的实现类

Java.text包介绍

1.    DateFormat:用于将日期对象格式化成对应国家的标准日期格式,该类不能被实例化(日期操作类3,代码见下)

2.    SimpleDateFormat:该类可以根据指定的掩码(pattern)格式将日期格式化成任意的格式,提供了非常灵活的定制功能,可以被实例化(日期操作类4)

Date_Calendar_DateFormat_SimpleDateFormat  实例

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TestDate {
	public static void main(String[] args) {
		testDate();
		testCalendar(); 
		testDateFormat();
		testSimpleDateFormat();
		parseDate();// 将字符串转换为日期
	}

	private static void testDate() {
		long now = System.currentTimeMillis();//得到地系统的日期时间,因为没有转换为规范的格式,所以的一长串数字
		Date date = new Date();//直接得到的日期时间信息,格式不太符合要求,可以格式化得到所需或者直接使用Calendar类
		System.out.println("利用System得到的时间:" + now);
		System.out.println("利用Date得到的时间:" + date);
		System.out.println("返回的数字可以进行计算:" + (now - 1000 * 60 * 60 * 24));

		Date date1 = new Date(now - 1000 * 60 * 60 * 24);//将计算后的数字转换为日期格式
		System.out.println("date是否是在date1之前:" + date.before(date1));
		System.out.println("date是否是在date1之后:" + date.after(date1));

		String datestr = String.format("%tF %

3.    NumberFormat:用于将一个数字按不同国家不同信息的显示形式进行格式化,不能实例化

4.    DecimalFormat:用于将一个数字按指定的掩码格式进行格式化,可以实例化

NumberFormat_DecimalFormat  实例

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

public class TestNumberFormat {
	public static void main(String[] args) {
		int a = 100;
		double b = 3.141592657;
		String s = "Hello world!";
		
		System.out.println(String.format("a=%d,d=%f,s=%s", a, b, s));
		System.out.println(String.format("a=%5d,d=%5.2f,s=%S", a, b, s));
		//符号d前的数字表示默认的位数,不足则在左边以空格表示
		//5.2f中,5代表的是默认一共5位,.2表示显示2位小数,大写S表示将s中的字母全部以大写输出
		System.out.println(String.format("a10=%d,a8=%o,a16=%X,d=%5.2f,s=%S", a, a, a, b, s));
		//可以将十进制数转换为八进制以及十六进制数
		System.out.println(String.format("a10=%d,a8=%

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java学习笔记(十五)网络编程及常用类库

网络编程: 多线程+网络: 1、服务器端的等待客户连接代码( while(true) ),服务器端与单个客户端交互的代码放入线程体( run ) 2、客户端如有其他要求,与服务器交互的代码也要放...

11. JAVA常用类库 Part 4 (对象克隆技术clone、Arrays类、Comparable接口、比较器Comparator、观察者设计模式) ----- 学习笔记

 11.11 对象克隆技术 clone 11.12 Arrays类 11.13 Comparable接口           11.13.1 比较器的基本应用  ...

11. JAVA常用类库 Part 3 (Math类、Random类、NumberFormat类、BigInteger类和BigDecimal类) ----- 学习笔记

 11.6 Math类         Math类是数学操作类,提供了一些列的数学操作方法,包括求绝对值、三角函数等等,在Math类中提供的一切方法都是静态方法,所以直接由类名名称调用即可,下...

11. JAVA常用类库 Part 5 (正则表达式、定时调度、本章要点) ----- 学习笔记

 11.16 正则表达式           11.16.1 认识正则表达式           11.16.2 Pattern类和Matcher类           1...

【Java学习笔记】5:简单认识Java常用类库

Java API,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 Java类库是系统提供的已实现的标准类的集合,...

Java学习笔记(类库介绍)

Java 的类定义语法: [类类型关键字] class 类名字 [extends] 父类名字 { [存取权限关键字] [静态标志] 变量名字; [存取权限关键字]...

深度学习Java类库deeplearning4j 学习笔记-MNIST手写数字分类问题

deeplearning4j这是一个用Java实现的深度学习类库。 网址: https://deeplearning4j.org 问题和数据集Minist是一个每个学过机器学习的童鞋都熟悉的类库。这...

【Java常用类库】_日期操作类(Date、Calendar)笔记

【Java常用类库】_日期操作类(Date、Calendar)笔记 分类: Java 【Java常用类库】_日期操作类(Date、Calendar)笔记 本章目标: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA学习笔记整理五(JAVA常用类库)
举报原因:
原因补充:

(最多只允许输入30个字)