[JAVA · 0基础]:16.经常使用类
基本类型包装
为什么须要包装类?
JAVA并非纯面向对象的语言。Java语言是一个面向对象的语言。可是Java中的基本数据类型却是不面向对象的。可是我们在实际使用中常常须要将基本数据转化成对象,便于操作。比方:集合的操作中。
这时,我们就须要将基本类型数据转化成对象。
均位于java.lang包。包装类和基本数据类型的相应关系:
包装类的作用:
提供:字符串、基本类型数据、对象之间互相转化的方式!
包括每种基本数据类型的相关属性如最大值、最小值等
全部的包装类(Wrapper Class)都有类似的方法,掌握一个其它都类似!
自己主动装箱
基本类型就自己主动地封装到与它同样类型的包装中。如:
Integer i = 100;
本质上是。编译器编译时为我们加入了:
Integer i = new Integer(100);
自己主动拆箱
包装类对象自己主动转换成基本类型数据。如:
int a = newInteger(100);
本质上,编译器编译时为我们加入了:
int a = newInteger(100).intValue();
字符串
特性:
1)它必须使用一对双引號括起来。比如: "ABC" "A" "6" ""
2)它不变。不怎么针对字符串操作。该串本身不变。
3)串中的每个字符均有一个索引號。
该索引號从 0 至 length()-1。
说明: length()方法,用来求串的长度。
4)串是一个对象,因此,它拥有属性和方法。
5)同样的字符串是共享的。
String(不可变字符序列)
Java字符串就是Unicode字符序列,比如串“Java”就是4个Unicode字符J,a,v,a组成的。
Java字符串就是Unicode字符序列。比如串“Java”就是4个Unicode字符J,a,v,a组成的。
Java同意使用符号"+"把两个字符串连接起来
– String s1 = “Hello”;String s2 = “World!”;
– String s = s1 + s2; //HelloWorld!
String类的经常用法:查看API文档,不累述。
字符串相等的的推断:一般使用equals()方法。
StringBuffer和StringBuilder 很类似。均代表可变的字符序列,并且方法也一样
字符串的选用
String:不可变字符序列
StringBuilder:可变字符序列、效率高、线程不安全
StringBuffer:可变字符序列、效率低、线程安全
String使用陷阱
string s="a"; //创建了一个字符串
s=s+"b"; //实际上原来的"a"字符串对象已经丢弃了,如今又产生了一个字符串s+"b"。假设多次运行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,减少效率。假设这种操作放到循环中,会极大影响程序的性能。
时间处理
在标准Java类库中包括一个Date类。它的对象表示一个特定的瞬间。精确到毫秒。
Java中时间的表示说白了也是数字,是从:标准纪元1970.1.1 0点開始到某个时刻的毫秒数,类型是long。
DateFormat和SimpleDateFormat 完毕字符串和时间对象的转化。
DateFormat类
1) 它来源于 java.text.DateFormat类
2) 它的作用:
a) 用来实现日期时间的格式化;
b) 将 日期时间型字符串 转换成 Date类的对象。
SimpleDateFormat 类
1)它来源于 java.text.SimpleFormat类
2)它的作用:
a)用来实现 日期时间的格式化;
先创建对象,指格式;
再格式化Date对象,得到结果;
比如: SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String re = sdf.format( new Date() );
b)将 日期时间型字符串 转换成 Date类的对象。
依据给定的字符串,来创建一个SimpleDateFormat的对象。
调用 parse( String )实现解析
比如:
<span style="font-size:18px;"><span style="font-size:18px;">String str = "===>>>2016年3月6号北京时间:15点23分21秒<<<===";
SimpleDateFormatsdf = new SimpleDateFormat("===>>>yyyy年MM月dd号北京时间:HH点mm分ss秒<<<===");
Dated1 = sdf.parse( str ); //解析</span></span>
注意: SimpleDateFormat类是DateFormat类的子类。
注意: SimpleDateFormat类在格式化和转换上均灵活。
Demo
<span style="font-size:18px;"><span style="font-size:18px;">/**
* SimpleDateFormat类的灵活性
*/ packagecom.hqg.oop.d311.a2; import java.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date; public classSimpleDateFormatTest {
public static void main(String[] args)throws ParseException {
Date d1 = new Date();
String str1 = DateFormat.getDateInstance().format(d1 ); SimpleDateFormat sdf = newSimpleDateFormat("\n★====^_^======★\nyyyy年MM月dd日\n★====^_^======★\n");
String str2 = sdf.format( d1 );//将d1依照sdf对象的要求实现 格式化 System.out.println("默认d1>>>> " + d1 );
System.out.println("格式化str1>>>> " + str1 );
System.out.println("格式化str2>>>> " + str2 ); sdf = newSimpleDateFormat("HH点mm分ss秒");
str2 = sdf.format( d1 ); //将d1依照sdf对象的要求实现 格式化
System.out.println("\nst2>>>" + str2 ); sdf = newSimpleDateFormat("D");
str2= sdf.format( d1 );
System.out.println("\nst2>>>" + str2 ); str1 = "中国北京时间: 2008年08月08号20点8分8秒";
SimpleDateFormat sdf2 = newSimpleDateFormat( "中国北京时间: yyyy年MM月dd号HH点mm分ss秒");
Date dd = sdf2.parse( str1 ); //将str1 这个串依照 sdf2对象的格式进行解析
System.out.println( dd ); str1 = "中工期2016===03===11==";
sdf2 = new SimpleDateFormat("中工期yyyy===MM===dd==" );
Date dd2 = sdf2.parse( str1 );
System.out.println( dd2 ); }
}</span></span>
Calendar日历类
什么是日历?
日历 :时间的一个经历, 时间的长河。
日期与日历?
日期表示一个静态的时间。是一个瞬间。
日历表示动态时间,包括了: 过去。如今,未来。
人们对于时间的认识是:某年某月某日,这种日期概念。
计算机是long类型的数字。通过Calendar在二者之间搭起桥梁!
GregorianCalendar公历
GregorianCalendar 是 Calendar 的一个详细子类,提供了世界上大多数国家/地区使用的标准日历系统。
注意:
月份:一月是0。二月是1,以此类推。是12月是11
星期:周日是1,周一是2,。。。
周六是7
Math
包括了常见的数学运算函数。
random()生成[0,1)之间的随机浮点数
生成:0-10之间的随意整数:
int a = (int)(10*Math.random());
生成:20-30之间的随意整数:
int b = 20 + (int)(10*Math.random());
File
java.io.File类:文件和文件夹路径名的抽象表示形式
通过File对象能够訪问文件的属性。
public boolean canRead() public boolean canWrite()
public boolean exists() public boolean isDirectory()
public boolean isFile() public boolean isHidden()
public long lastModified() public long length()
public String getName() public String getPath()
通过File对象创建空文件或文件夹(在该对象所指的文件或文件夹不存在的情况下)。
public booleancreateNewFile()throws IOException
public booleandelete()
public booleanmkdir()。 mkdirs() 注意两个的差别!
!
枚举
枚举类型:
仅仅可以取特定值中的一个
使用enumkeyword
全部的枚举类型隐性地继承自 java.lang.Enum。
(枚举实质上还是类!而每一个被枚举的成员实质就是一个枚举类型的实例。他们默认都是public static final的。能够直接通过枚举类型名直接使用它们。)
强烈建议当你须要定义一组常量时,使用枚举类型
尽量不要使用枚举的高级特性。其实高级特性都能够使用普通类来实现,没有必要引入复杂性。
业务思想
经常使用类是关于我们在寻常工作中经常使用到的一个简单的例举。
理解起来非常easy。可是在使用中却须要我们小心它们,一个不慎,非常有可能与想象中非常不同样呢。
[JAVA · 0基础]:16.经常使用类的更多相关文章
- [JAVA · 0基础]:19.容器类
概述 容器 就是存放数据的一个集合 (java提供了一个接口专门去约束我们容器的实现类) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L ...
- [JAVA · 0基础]:3.转义字符
定义 全部的ASCII码都能够用"\"加数字(通常是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\ ...
- [JAVA · 0基础]:11.终结者-final
关于finalkeyword的总结,是非常easy学习和掌握的,大致分为用final修饰的符号常量.类.方法.属性四部分.而这四部分的内容也是我们必须掌握的,非常有用.在项目中常常来利用finalke ...
- Effective Java 第三版——16.在公共类中使用访问方法而不是公共属性
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
- JAVA核心技术I---JAVA基础知识(数字相关类)
一:相关数字类 –整数 Short, Int, Long –浮点数 Float, Double –大数类 BigInteger(大整数), BigDecimal(大浮点数) –随机数类 Random ...
- Java入门 - 语言基础 - 04.对象和类
原文地址:http://www.work100.net/training/java-object-class.html 更多教程:光束云 - 免费课程 对象和类 序号 文内章节 视频 1 概述 2 J ...
- JAVA核心技术I---JAVA基础知识(时间类)
一:时间类库了解 java.util.Date(基本废弃,Deprecated) –getTime(),返回自1970..1以来的毫秒数 java.sql.Date(和数据库对应的时间类) //与数据 ...
- java并发编程基础——线程相关的类
线程相关类 java还为线程安全提供了一些工具类. 一.ThreadLocal类(Thread Local Variable) ThreadLocal类,是线程局部变量的意思.功用非常简单,就是为每一 ...
随机推荐
- Keep-Alive 长连接(转载)
短连接与长连接 通俗来讲,浏览器和服务器每进行一次通信,就建立一次连接,任务结束就中断连接,即短连接.相反地,假如通信结束(如完成了某个HTML文件的信息获取)后保持连接则为长连接.在HTTP/1.0 ...
- 字蛛(font-spider)-单独压缩字体(解决页面少有的特殊字体的字体包引用)
特别想独立的把这个问题写成一篇内容,分享给大家. 反正我是这个字体压缩使用的受益者,不是打广告. 很久以前,设计师总是爱用一些奇奇怪怪的字体放在页面上,而作为前端我们很容易的就能直接使用TA们用到的字 ...
- 使用vue-element-admin框架开发时遇到的跨域问题
之前 使用js和jquery开发时也碰到过接口请求时的跨域问题, 但是在使用vue-element-admin开发也碰到这个问题,而且不能使用之前的方法解决,查过不少资料,找到一个很好的方法解决了这个 ...
- awk理论详解、实战
答疑解惑: 为什么用awk取IP的时候用$4? ifconfig eth0 | awk -F '[ :]+' 'NR==2{print $4}' IP第二行内容如下: inet addr:10.0.0 ...
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) Order Book 模拟
原题链接:http://codeforces.com/contest/572/problem/B 题意 很迷,自行看题. 题解 看懂题就会做了 代码 #include<iostream> ...
- 实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎
实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎 Programmatic Framework™ 传漾程序化购买框架
- es6系列-变量声明
es6系列所有文章都是阅读阮一峰老师的<ES6标准入门>(第2版)所做的读书笔记.方便日后查阅相关基础知识. git地址: https://github.com/rainnaZR/es6- ...
- 【sublime text 3】sublime text 3 汉化
快捷键:Ctrl+Alt+P 输入快捷键Ctrl+Shift+P 在出现的文本框中输入Install Package(或直接输入“ip”)选中packageControl:Install Packag ...
- Android -- native关键字
native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口 ...
- 谈oracle数据比对(DBMS_COMPARISON)
今天是2014-08-19,我今天收到csdn给我发的申请博客专家的邀请,自己感觉实在羞愧啊. 自从换了工作也一直没有精力在写点东西了.今天我一个同事,在群里贴出了一个数据比对的包(DBMS_COMP ...