提纲:
1.java.lang.0bject中常用方法介绍
2.基本类型对应的包装类型的介绍
以及基本类型和包装类型之间的相互转换
3.java.lang.String 字符串处理类
java.lang.StringBuilder

->包装类型中的方法的使用
->字符串当中的方法的使用
->基本类型 包装类型以及字符串还有StringBuilder
之间的相互转换
-----------------------------------------------------------------------
java.lang.Object
是所有类的基类,所有的类或直接或间接继承它

常用方法:
1.getClass();//获取对象的运行时类型

java.lang.Class<T>
它是用来描述类的类,通过这个类,我们可以获取类里面的信息
它也是Java反射技术的基础类!!!

注意:一个类无论被实例化了多少次,它在Java当中的Class实例永远只有1个!!!

Student s1 = new Student();
Student s2 = new Student();
s1==s2;//false
s1.getClass()==s2.getClass();//true

Java当中获取Class实例的5种方式:

1.对象名.getClass();

2.类名.class

3.Class.forName("类的全限定名");
此方法要求我们强制去处理异常,java.lang.ClassNotFoundException

4.基本类型.class
int.class

5.包装类型.class
Integer.class
-------------------------------------------------------------------------------------------
常用方法2:
boolean equals(Object obj);

java.lang.Object当中的该方法默认比较的是内存地址

为了比较两个对象是否“相等”,我们通常情况下是要去
重写equals方法的

重写equals方法的步骤
1.非空性
2.自反性
3.一致性
4.传递性
5.对称性

注意:
1.== 基本类型的比较用==
==比较的是内存地址
2.equals 对象类型的比较用equals方法,默认比较的是内存地址
需要对它进行重写
3.String类型和Date类型已经重写过了该方法!!!

s1.equals(s2);

@Override
public boolean equals(Object obj){
//1.非空性
if(null==obj){
return false;
}
//2.自反性
if(this==obj){
return true;
}
//3.一致性
if(obj instanceof Student){
Student s = (Student)obj;
//如果两个对象的id是一致的,就认定为同一个对象
return s.getId()==id;
}

return false;
}

int hashCode();//返回对象的哈希值
主要目的:是用来提高性能的

1.相同对象(equals方法true),哈希值一定要相同
1.不同对像的哈希值尽可能保证不同

出现在equals方法中的属性一定也要出现在hashCode方法中!!!

3.toString()方法:
默认输出的是对象的内存地址

com.tz.day10.Student@20

getClass()+'@'+Integer.toHexString(hashcode());

一般重写,来输出对象的字符串表现形式
如果输出对象的时候,不是以上这种类型,那说明它自己重写了该方法
或者它的父类重写了该toString()方法来满足打印需求!!!

4.protected Object clone();//创建并返回某个对象的副本

1.protected修饰符改成public

2.实体类要去实现java.lang.Cloneable接口
否则会抛出java.lang.CloneNotSupportedException

java.lang.Object当中的clone属于浅层克隆

浅层clone:浅拷贝
将基本类型的值复制一份给副本,对象类型是共享的
当然:String和Date类型是除外的!!!

深层clone:深拷贝
需要我们手动进行编码,将所有类型的数据全部拷贝给副本
不存在共享的数据类型!!!

5.protected void finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

注意:
1.该方法不是由人为来调用的,是由JVM来调用的
2.JVM回收一个垃圾对象的时候,会先去调用该对象的这个方法
3.无论程序中是否出现异常,该方法都会执行

4.请您区别final finally finalize
-----------------------------------------------------------------------------------------------
基本类型以及它所对应的包装类型
byte->Byte
short->Short
int->Integer
long->Long
float->Float
double->Double

boolean->Boolean
char->Character

关于数字类型的包装类都有一个顶级的抽象的父类java.lang.Number

抽象父类当中公共的方法:
byte byteValue()
以 byte 形式返回指定的数值。
abstract double doubleValue()
以 double 形式返回指定的数值。
abstract float floatValue()
以 float 形式返回指定的数值。
abstract int intValue()
以 int 形式返回指定的数值。
abstract long longValue()
以 long 形式返回指定的数值。
short shortValue()
以 short 形式返回指定的数值。

以上这些方法都是用来将包装类型转换成基本类型的

java.lang.Integer

构造方法:
Integer(int value);//利用基本类型(int)来构建一个Integer对象
Integer(String value);//此处的String必须是数字类型的,否则会抛出
//java.lang.NumberFormatException数字格式化异常

JDK5.0以后支持自动解封箱

封箱:将基本类型封装成它对应的包装类型
解箱:将包装类型转换成它所对应的基本类型

//定义一个int类型的数据
int i = 10;
//自动封箱
Integer j = i;//ok
Integer x = 10;//ok

//自动解箱
int y = x;

常用方法:
1.boolean equals(Object obj);
Integer i = new Integer(10);
Integer j = new Integer(10);
i==j;//false
i.equals(j);//true

2.int intValue();//将Integer->int

3.static int parseInt(String value);//将字符串解析成int类型

4.String toString();//Integer->String

5.static Integer valueOf(int i);//int->value

6.static Integer valueOf(String value);

总结:
int->Integer:
==》 1.通过Integer构造
==》 2.自动封箱
==》 3.valuOf(int i)

Integer->int
==> 1.自动解箱
==》 2.int intValue()

Integer->String
=> String toString();

String->int
=> int parseInt(String value);

String->Integer
=>Integer valueOf(String value);

int->String
=>java.lang.String类中的
String valueOf(int i);
-----------------------------------------------------------------------------
java.lang.Character

1.构造方法:
Character(char value);//char->Character

支持自动解封箱的

char c = 'a';
Character cc = c;

2.常用方法:
1. char charValue();

2.static boolean isDigit(char ch)
确定指定字符是否为数字

3.static boolean isLetter(char ch)
确定指定字符是否为字母

4.static boolean isLowerCase(char ch)
确定指定字符是否为小写字母

5.static boolean isUpperCase(char ch)
确定指定字符是否为大写字母

6.static boolean isWhitespace(char ch)
确定指定字符依据 Java 标准是否为空白字符

7.String toString()

8.static Character valueOf(char c);
-------------------------------------------------------------------------------------
java.lang.Boolean

构造方法:
Boolean(boolean flag);
Boolean(String value);//当且仅当传入的String是true或者TRUE结果才是true

支持自动解封箱

API
---------------------------------------------------------------------------------------

Java笔记10-Object包装类型字符串的更多相关文章

  1. JS 学习笔记--10---基本包装类型

    练习中使用的浏览器是IE10,如果有什么错误或者不同意见,希望各位朋友能够指正,练习代码附在后面 1.基本包装类型:    首先是基本类型,但又是特殊的引用类型,因为他们可以调用系统的方法,这种类型就 ...

  2. Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类

    Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...

  3. Java基本数据类型与包装类型(转)

    基本数据类型的包装类 为什么需要包装类? Java并不是纯面向对象的语言.Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的.但是我们在实际使用中经常需要将基本数据转化成对象 ...

  4. java中基本类型和包装类型实践经验

    至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...

  5. JS高级程序设计学习笔记之基本包装类型

    概述 基本类型:string.boolean.number 每当读取一个基本类型的值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据. 使用new操作符创建的 ...

  6. [Java学习]常用类-包装类型

    八种基本类型对应的包装类 Java中的数据类型由八种基本类型,以及引用类型组成. byte short int long float double boolbean char Object 为了方便, ...

  7. Java的基本类型和包装类型

    测试的JDK版本:java version "1.7.0_79".Java的9中基本类型:void.char.boolean.byte.short.int.long.float.d ...

  8. javascript学习笔记 - 引用类型 基本包装类型

    六 基本包装类型 Boolean,Number,String 这三个引用类型亦称为基本包装类型,与基本的数据类型boolean,number,string相关联.为了方便操作这些基本类型的数据. 引用 ...

  9. java笔记10之循环

    关于for    循环语句:for循环,while循环,do...while循环.        for循环格式:        for(初始化语句;判断条件语句;控制条件语句) {          ...

随机推荐

  1. ROS语音交互——科大讯飞语音合成TTS(二)

    之前我用过科大讯飞的语音包,为了记录一下我重新使用一下 首先注册科大讯飞账号及应用,以后每个下载的在线使用SDK都是以此账户ID登录讯飞语音服务器. 下载科大讯飞在线合成包. $ unzip Linu ...

  2. Python Day 01

    What is variables? 一段命名的内存空间 变量即在程序运行过程中,它的值是允许改变的量 1.变量命名: 合法: 显式.通俗易懂. nums_of_jay_gf = 19 NumsOfJ ...

  3. 观点:BPM已经过时了?

    在这个信息爆炸的世界,业务转型通常是以数字系统和流程的方式发生. 根据Forrester的报告“软件必须丰富你的品牌”,人们要依靠这些技术实现期望的商业成果,比如品牌联系.客户服务创新.更好的产品和提 ...

  4. MicroERP1.0简介及下载

    Micro ERP(蓝本)适用于中小微型企事业单位实施信息化管理.本系统研发初始即摒弃了传统ERP所众所周知的诸多繁琐功能,始终坚持以简化流程.平稳实施.快 速应用为切入点.在功能不断完善.健壮的同时 ...

  5. extjs combobox

    states.js中 Ext.example.states=[ ['AL','ALabama','The Heart of Dixie'], ['AK','Alaska','The Land of t ...

  6. css中的1px并不总等于设备的1px(高分辨率不等 低分辨等)

    在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素.但实际情况却并非如此,css ...

  7. ueditor 图片上传功能(.net)

    假如下载的net文件 所在工程引用bin文件中的Newtonsoft.Json.dll 在浏览器中运行 `net/controller.ashx`,如果返回 "`{"state&q ...

  8. Longest Substring Without Repeating Characters(Difficulty: Medium)

    题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  9. ReactJS实现的通用分页组件

    大家多少都自己写过各种版本的分页工具条吧,像纯服务版的,纯jsWeb板的,Angular版的,因为这个基础得不能再基础的功能太多地方都会用到,下面我给出以个用ReactJS实现的版本,首先上图看下效果 ...

  10. ad bga扇出 和群组布线

    本文关于如何快速规范的bga布线和扇出做笔记 目的:layout一个ili的3+1的控制板.把线距控制在4mil 这样可以节约制造成本. 问题:需要大改布局.尤其是bga扇出和通道连接的问题. 细节: ...