java togmtstring,JAVA常用类

基本数据类型的包装类(Wrapper Class)

为什么需要包装类

Java并不是纯面向对象的语言.Java语言是一个面型对象的语言,但是Java中基本数据类型确实不面向对象的.但实际应用中经常需要将基本数据类型转化成对象,便于操作.比如:集合的操作中我们就需要将基本数据类型转化成对象!

包装类均位于java.lang包,包装类和基本数据类型的对应关系:

byte Byte

boolean Boolean

short Short

Char Character

int Integer

long Long

float Float

double Double

自动装箱(1.5之后)

基本类型自动的封装成与它相同类型的包装类对象,如:

Integer = 100;

本质上是编译器编译时为我们添加了:

Integer i = new Integer(100);

自动拆箱(1.5之后)

包装类对象自动转换成基本类型数据,如:

int a = new Integer(100);

本质上是编译器编译时为我们添加了:

int a = new Integer(100).intValue();

缓存问题

当创建Integer对象时,不使用new Integer(int i)语句,大小在-128~127之间,对象存放在Integer常量池中

Integer.valueOf()方法

public static Integer valueOf(int i) {

if (i >= IntegerCache.low && i <= IntegerCache.high)

return IntegerCache.cache[i + (-IntegerCache.low)];

return new Integer(i);

}

测试

public class TestInteger {

public static void main(String[] args) {

//jdk1.5后 虚拟机为包装类提供了缓冲池,Integer缓冲池的大小为一个字节(-128~127);

//创建 1 个对象,存放在常量池中。引用c1,c2存放在栈内存中。

Integer c1 = 1;

Integer c2 = 1;

System.out.println("c1 = c2 ? " + (c1 == c2)); //true

//创建 2 个对象,存放在堆内存中。2 个引用存放在栈内存中。

Integer b1 = 130; //130不在(-128~127)之间

Integer b2 = 130;

System.out.println("b1 = b2 ? " + (b1 == b2)); //false

//创建2个对象,存放在堆内存中。

Integer b3 = new Integer(2);

Integer b4 = new Integer(2);

System.out.println("b3 = b4 ? " + (b3 == b4)); //false

//下面两行代码证明了使用new Integer(int i) (i 在-128~127之间)创建对象不会保存在常量池中。

Integer b5 = 2;

System.out.println("b3 = b5 ? " + (b3 == b5)); //false

//Integer的自动拆箱,b3自动转换成数字 2。

System.out.println("b3 = 2 ? " + (b3 == 2)); //true

Integer b6 = 210;

System.out.println("b6 = 210 ? " + (b6 == 210)); //true

}

}

时间处理相关类

768c87cedca5625f6f6babddd2fdb2bd.png

Date时间类(java.util.Date)

在标准Java类库中包含一个Date类.它的对象表示一个特定的瞬间,精确到毫秒

Java中事假的表示说白了也是数字,是从标准纪元1970.1.1 0点开始到某时刻的毫秒数,类型是long

Date d = new Date(1000);

//toGMTString()转换为格林尼治时间,否则为本地时间

System.out.println(d.toGMTString());

Date类的多数方法都遗弃了,只保留了核心方法,建议使用Calendar类

DateFormat和SimpleDateFormat

完成字符串和时间对象的转化

format

DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");

Date date = new Date();

String str = dateFormat.format(date);

System.out.println(str);

更多参数可以看api,比如w代表第几周

parse

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Date date = dateFormat.parse("1977-7-3 12:30:13");

System.out.println(date);

Calendar日历类

GregorianCalendar是Calendar的一个子类,提供了世界上大多数国家/地区使用的标准日历系统

注意:

月份:一月是0,二月是1,以此类推

星期:周日是1,周一是2...周六是7

Calendar c = new GregorianCalendar();

c.set(2017, Calendar.APRIL, 10);

c.set(Calendar.YEAR, 2017);

System.out.println(c.getTimeInMillis());

//加1天,减用负数

c.add(Calendar.DAY_OF_YEAR, 1);

System.out.println(c.getTimeInMillis());

可视化日历

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Scanner;

/**

* 可视化日历程序

*/

public class VisualCalendar {

public static void main(String[] args) {

System.out.println("请输入日期(按照格式:2030-3-10):");

Scanner scanner = new Scanner(System.in);

String temp = scanner.nextLine();

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

try {

Date date = format.parse(temp);

Calendar calendar = new GregorianCalendar();

calendar.setTime(date);

int day = calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE, 1);

int maxDate = calendar.getActualMaximum(Calendar.DATE);

System.out.println("日\t一\t二\t三\t四\t五\t六");

for(int i=1;i

System.out.print('\t');

}

for(int i=1;i<=maxDate;i++){

if(i==day){

System.out.print("*");

}

System.out.print(i+"\t");

int w = calendar.get(Calendar.DAY_OF_WEEK);

if(w==Calendar.SATURDAY){

System.out.print('\n');

}

calendar.add(Calendar.DATE, 1);

}

} catch (ParseException e) {

e.printStackTrace();

}

}

}

File类

java.io.File:文件和目录路径名的抽象形式

通过File对象可以访问文件的属性

public boolean canRead()

public boolean canWrite()

public boolean exists()

public boolean isDirectory()

public boolean isFile()

public boolean isHidden()

public boolean lastModified()

public boolean length()

public boolean getName()

public boolean getPath()

通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)

public boolean createNewFile()throws IOException

public boolean delete()

public boolean mkdir() ,mkdirs()

递归打印目录树状结构

import java.io.File;

public class FileTree {

public static void main(String[] args) {

//找一个自己硬盘上有用的文件夹

File f = new File("d:/aaa");

printFile(f, 0);

}

static void printFile(File file,int level){

for (int i = 0; i < level; i++) {

System.out.print("-");

}

System.out.println(file.getName());

if(file.isDirectory()){

File[] files = file.listFiles();

for (File temp : files) {

printFile(temp, level+1);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值