• 1. 包装类的基本用法
  • 2.自动装箱和拆箱

1. 包装类的基本用法

1.1 为什么需要包装类(Wrapper Class)


Java 并不是纯面向对象的语言。

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

1.2 包装类和基本数据类型的对应关系

基本数据类型

包装类

byte ——Byte

boolean—— Boolean

short ——Short

char ——Character

int ——Integer

long ——Long

float ——Float

double ——Double

1.3 包装类的继承关系

1.4 包装类的基本操作 以 Integer 举例

Attention:

IntegerClass override equals method and toString method.




2.自动装箱和拆箱

2.1 自动装箱 auto-boxing

基本类型就自动地封装到与它相同的类型的包装类中 Integer i=100;


This is because the compiler calls valueOf()method:


Integer i=Integer.valueOf(100);

Integer 中的缓存类 IntegerCache
Cache 为

[-128,127],IntegerCache 有一个静态的 Integer 数组,在类加载时就将-128 到 127 的 Integer 对象创建了,并 保存在 cache 数组中,一旦程序调用 valueOf 方法,如果取 的值是在-128 到 127 之间就直接在 cache 缓存数组中去取 Integer 对象,超出范围就 new 一个对象。

2.2 自动拆箱 unboxing 包装类对象自动转换成基本类型数据

int a=new Integer(100);

编译器为我们添加了

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

wi’cai’ban’lan’wu




3.String 类底层分析_JDK 源码分析

3.1String 的底层数据结构


String 的底层数据结构是 char 类型的数组
String 的相应方法的实现实际上就是对数组的一个操作

3.2String、StringBuilder、StringBuffer

1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。

2、String不可变是因为在JDK中,String类被声明为一个final类。

3、StringBuffer是线程安全的,而StringBuilder是非线程安全的。




4.StringBuilder_StringBuffer 用法_JDK 底 层源码分析

4.1 可变的字符串

StringBuilder:效率高,安全性低

StringBuffer:效率低,安全性高

4.2StringBuilder 的常用方法的使用

append();//主要用于字符串的追加。

delete();//主要用于删除一段字符,但是

//含头不含尾。这段字符的头字符

//被删

deleteCharAt();//删除指定字符。

insert();//主要用于在数组的指定位置添加一个

//字符

indexof();//主要用于找字符,找到返回数

//字下表,找不到返回-1。

4.3StringBuilderJDK 源码分析

两者的method基本可以通用,只是在效率和安全上有所区别。




5.不可变字符序列和可变字符序列的深入

javap 是 JDK 自带的一个工具,可以反编译,也可以查看 Java

编译器生成的字节码,是分析代的一个好工具。 -c 对代码进行反汇编

  1. 在等号”=”右侧有variable or “new” keywords,the heap will create new space.

eg:variable




6.java.util.Date

Java 有关获取时间的类:Date类、SimpleDateFormat类和Calendar类

6.1java.util.Date

long getTime()
返回自1970年1月1日以来,由此 Date对象表示的

00:00:00 GMT 的毫秒数

6.2java.sql.Date

6.3java.sql.Date

6.4java.sql.Timestamp




7.DateFormatSimpleDateFormat

Java 有关获取时间的类:Date类、SimpleDateFormat类和Calendar类

Date类

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

1)date->string, use format(Date d) method;

2)string->data, use prase(String s) method;




8.Calendar

Java 有关获取时间的类:Date类、SimpleDateFormat类和Calendar类

8.1Calendar

人们对于时间的认识是:某年某月某日,这样的日期概念。

计算机是 long 类型的数字。通过 Calendar 在二者之间搭起桥 梁!

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

月份:一月是 0,二月是 1,以此类推,是 12 月是 11 星期:周日是 1,周一是 2,。周六是 7

8.2Calendar 的常用方法

set();get();getTime();setTime();

add(field,amount;)(在年、月、日三个field中选择一个,增加。比如在“日”中,增加10天。)

8.3 使用 Calendar 编写万年历




9.Math

9.1Math 类的常用方法

1)Math.abs() //absolute value 绝对值

2)向上取整再转double

3)

4)平方 eg: 5,2=25;

5)开方

6)随机数

7)

9.2 静态导入 JDK1.5

1)java 默认import java.lang.*;

2)JDK1.5之后,We can sue “static import”, this is its format:

When we use this format, we can omit “Math.”;




10.File

  • 文件和目录路径名的抽象表示形式。一个 File 对象可以代表 一个文件或目录 。
  • function:可以实现获取文件和目录属性等功能。可以实现对文件和目录的创建、删除等功能。
  • File 不能访问文件内容 。

10.1File 类操作文件

1)file class locat in package:java.io.*;

2)create FileClass object;

3)method

10.2File 类操作目录




11.使用递归算法遍历目录结构和树结构

编写一个程序:以树状结构展现特定的文件夹及其子文件 (夹)(使用递归来做)




12.枚举

12.1 枚举的定义

其值是固定的,我们在使用的时候只能够取特定值中的一个。

使用 enum 关键字 。

12.2 枚举的使用

而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是 public static final 的。可以直接通过枚举类型名直接 使用它们。)

强烈建议当你需要定义一组常量时,使用枚举类型

尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入复杂性!

12.3 枚举与类的关系


所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类! )




System_class

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。

1、成员变量

System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。

例如:

System.out.println(“Test”);

该行代码的作用是将字符串”Test”输出到系统的标准输出设备上,也就是显示在屏幕上。

后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。

2、成员方法

System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:

a、arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。

使用示例:

int[] a = {1,2,3,4};

int[] b = new int[5];

System.arraycopy(a,1,b,3,2);

该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

b、currentTimeMillis方法

public static long currentTimeMillis()

该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。例如:

long l = System. currentTimeMillis();

则获得的将是一个长整型的数字,该数字就是以差值表达的当前时间。

使用该方法获得的时间不够直观,但是却很方便时间的计算。例如,计算程序运行需要的时间则可以使用如下的代码:

long start = System. currentTimeMillis();

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

int a = 0;

}

long end = System. currentTimeMillis();

long time = end – start;

则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。

c、exit方法

public static void exit(int status)

该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

d、gc方法

public static void gc()

该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

e、getProperty方法

public static String getProperty(String key)

该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示。

属性名列表

属性名

属性说明

java.version

Java 运行时环境版本

java.home

Java 安装目录

os.name

操作系统的名称

os.version

操作系统的版本

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

string转date类型_10:Wrapper;String;Date;Math;File;Enumeration;Syst相关推荐

  1. 数据库时间为datetime(date)类型,开发使用String类型的优劣

    随笔: 在mysql数据库中,关于时间的使用是datetime类型,而在开发中使用string类型 datetime类型是规范的格式,储存空间8 bytes,YYYY-MM-DD HH:MM:SS格式 ...

  2. oracle时间类型转化成java对象_Oracle数据库date类型与Java中Date的联系与转化

    以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助. new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当 ...

  3. java把string转int类型_java把String类型转换为int类型的方法

    java把String类型转换为int类型的方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型转换为i ...

  4. mysql double 转string类型转换_double类型转化成string

    public static void main(String[] args) { double priceWithFreight = 1200.5698d; System.out.println(pr ...

  5. java中怎样将字符串转化为date_java如何将string类型转为date类型?怎样转?

    很多人表示,java将string类型转为date类型不知道应该怎样做,那么下面特地的对这个问题做了一下内容的整合,一起来看看. String转换成Date类型SimpleDateFormat ft  ...

  6. java string转sql date_Java中的util.Date,sql.Date,sql.Time,String类型转换

    今天总结一下工具类中Date类型. java.sql.Date,java.sql.Time,和java.sql.Timestamp(时间戳记)都是java.util.Date的子类. java.sql ...

  7. date类型_06076.1.0如何将ORC格式且使用了DATE类型的Hive表转为Parquet表

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  8. feign date类型时间错误问题

    问题 在feign传输date类型的数据时,在调用方时间正确,而被调用方获取时时间会相差14个小时. 原因 Feign客户端在进行通信时,会将Date类型对象转为String类型,如果这个时间是北京时 ...

  9. java中Date()类型输入数据的处理

    对于Date类型的数据,需要输入生日存入相应数据库中 private Date birthday;// 生日 package com.pdsu.mybatis.pojo;import java.io. ...

最新文章

  1. linux下jetty简单配置
  2. commons-lang常用方法
  3. java中位数_java 计算中位数方法
  4. gdb tui 安装_GDB 单步调试汇编
  5. 德云斗笑社何九华为什么没参加_狗狗的身体卡在了门上,女主人低头一看忍不住笑了:这是膨胀了...
  6. Java 算法 理财计划
  7. http,tcp的长连接和短连接
  8. html样式超出出现滚动条,CSS 设置的高度超出屏幕高度为什么没出现滚动条?
  9. 关于github的一些问题汇总
  10. 朴素贝叶斯实战:人群收入预测(基于美国人口普查收入数据)
  11. pmp项目管理师证书有什么用?
  12. android 模拟器网易,网易MuMu全游戏平台 网易mumu模拟器
  13. source insight如何设置背景
  14. Restful-API设计最佳实战--Django播客系统(五)
  15. 多模态学习(Multimodal Deep Learning)研究进展综述(转载)
  16. brother printer 打印机 winform 小工具
  17. android获取手机型号和手机厂商
  18. Excel 2010 SQL应用110 分组统计之HAVING子句
  19. 必读如何有效的进行沟通
  20. vue js 前端导出 下载 打印 图片 pdf html 局部打印

热门文章

  1. eclipse svn异常:RA layer request failed 的解决方案
  2. 如何处理异常? catch Exception OR catch Throwable
  3. Spring RestTemplate中文乱码解决方案
  4. html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题
  5. Python 执行js的2种解决方案-乾颐堂
  6. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法
  7. Kotlin中的Java静态方法等效于什么?
  8. LF将由git中的CRLF替换-那是什么,它很重要吗? [重复]
  9. JS每日一题: 小程序页面之间如何通信?
  10. MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题