疯狂java讲义笔记(李刚)6.1
2018-03-15 19:26
106 查看
java提供了final关键字来修饰变量,方法和类,系统不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不能派生子类。通过使用final关键字,允许java实现不可变类,不可变类会让系统更加安全
abstract和interface两个关键字分别用于定义抽象类和接口,抽象类和接口都是从多个子类中抽象出来的共同特征,但抽象主要作为多个类的模板,而接口则定义了多类应该遵守的规范。
6.1 java8增强的包装类
基本数据类型及其包装类
int---Integer char---Character
byte---Byte short---Short long---Long float---Float double---Double boolean---Boolean
自动装箱和自动拆箱功能
自动装箱,就是可以把一个基本类型变量直接赋给对应的包装类对象,或者赋给Object对象(Object是所有类的父类,子类对象可以直接赋给父类对象)
自动拆箱则与之相反,允许直接把包装类对象直接赋给一个对应的基本类型变量
public class AutoBoxingUnboxing
{
public static void main(String[] args)
{
Integer inObj=5;
Object boolObj=true;
int it=inObj;
if(boolObj instanceof Boolean)
{
boolean b=(Boolean)boolObj;
System.out.println(b);
}
}
}
进行自动装箱和自动拆箱时必须注意类型匹配
除此之外,包装类还可实现基本类型和字符串之间的转换,把字符串类型的值转换为基本类型的值有两种方式:
*利用包装类提供的parseXXX(String s)静态方法(除了Character之外的所有包装类都提供了该方法)
*利用包装类提供的XXX(String s)构造器
String类提供了多个重载ValueOf()方法
public class Primitive2String
{
public static void main(String[] args)
{
String intStr="123";
int it1=Integer.parseInt(intStr);
int it2=new Integer(intStr);
System.out.println(it2);
String floatStr="4.56";
float ft1=Float.parseFloat(floatStr);
float ft2=new Float(floatStr);
System.out.println(ft2);
String ftStr=String.valueOf(2.345f);
System.out.println(ftStr);
String dbStr=String.valueOf(3.344);
System.out.println(dbStr);
String boolStr=String.valueOf(true);
System.out.println(boolStr.toUpperCase());
}
}
如果希望把基本类型转换为字符串,还有一种更简单的方法:将基本类型变量和”“进行连接运算,例如:String intStr=5+”“;
虽然包装类型的变量是引用数据类型,但包装类的实例可以与数值类型的值进行比较,这种比较是直接取出包装类实例所包装的数值来进行比较的
public class WrapperClassCompare
{
public static void main(String[] args)
{
String b="6";
//Integer a=new Integer(6);
Integer a=Integer.parseInt(b);
System.out.println("6的包装类实例是否大于5"+(a>5));
}
}
两个包装类的实例进行比较时就比较复杂,因为包装类的实例实际上是引用类型,只有两个包装类引用指向同一个对象时才会返回true
public class WrapperCompare
{
public static void main(String[] args)
{
System.out.println("比较两个包装类的实例是否相等:"+(new Integer(2)==new Integer(2)));
}
}
自动装箱的特殊情形
public class WrapperCompareTest
{
public static void main(String[] args)
{
Integer ina=2;
Integer inb=2;
System.out.println("两个2自动装箱是否相等:"+(ina==inb));//true
Integer biga=128;
Integer bigb=128;
System.out.println("两个128自动装箱后是否相等:"+(biga==bigb));//false
}
}
系统把-128~127之间的整数自动装箱成Integer实例
通过包装类提供的compare(XXX,XXX)可以比较两个基本类型值的大小(当两个boolean类型进行比较时,true>false)
abstract和interface两个关键字分别用于定义抽象类和接口,抽象类和接口都是从多个子类中抽象出来的共同特征,但抽象主要作为多个类的模板,而接口则定义了多类应该遵守的规范。
6.1 java8增强的包装类
基本数据类型及其包装类
int---Integer char---Character
byte---Byte short---Short long---Long float---Float double---Double boolean---Boolean
自动装箱和自动拆箱功能
自动装箱,就是可以把一个基本类型变量直接赋给对应的包装类对象,或者赋给Object对象(Object是所有类的父类,子类对象可以直接赋给父类对象)
自动拆箱则与之相反,允许直接把包装类对象直接赋给一个对应的基本类型变量
public class AutoBoxingUnboxing
{
public static void main(String[] args)
{
Integer inObj=5;
Object boolObj=true;
int it=inObj;
if(boolObj instanceof Boolean)
{
boolean b=(Boolean)boolObj;
System.out.println(b);
}
}
}
进行自动装箱和自动拆箱时必须注意类型匹配
除此之外,包装类还可实现基本类型和字符串之间的转换,把字符串类型的值转换为基本类型的值有两种方式:
*利用包装类提供的parseXXX(String s)静态方法(除了Character之外的所有包装类都提供了该方法)
*利用包装类提供的XXX(String s)构造器
String类提供了多个重载ValueOf()方法
public class Primitive2String
{
public static void main(String[] args)
{
String intStr="123";
int it1=Integer.parseInt(intStr);
int it2=new Integer(intStr);
System.out.println(it2);
String floatStr="4.56";
float ft1=Float.parseFloat(floatStr);
float ft2=new Float(floatStr);
System.out.println(ft2);
String ftStr=String.valueOf(2.345f);
System.out.println(ftStr);
String dbStr=String.valueOf(3.344);
System.out.println(dbStr);
String boolStr=String.valueOf(true);
System.out.println(boolStr.toUpperCase());
}
}
如果希望把基本类型转换为字符串,还有一种更简单的方法:将基本类型变量和”“进行连接运算,例如:String intStr=5+”“;
虽然包装类型的变量是引用数据类型,但包装类的实例可以与数值类型的值进行比较,这种比较是直接取出包装类实例所包装的数值来进行比较的
public class WrapperClassCompare
{
public static void main(String[] args)
{
String b="6";
//Integer a=new Integer(6);
Integer a=Integer.parseInt(b);
System.out.println("6的包装类实例是否大于5"+(a>5));
}
}
两个包装类的实例进行比较时就比较复杂,因为包装类的实例实际上是引用类型,只有两个包装类引用指向同一个对象时才会返回true
public class WrapperCompare
{
public static void main(String[] args)
{
System.out.println("比较两个包装类的实例是否相等:"+(new Integer(2)==new Integer(2)));
}
}
自动装箱的特殊情形
public class WrapperCompareTest
{
public static void main(String[] args)
{
Integer ina=2;
Integer inb=2;
System.out.println("两个2自动装箱是否相等:"+(ina==inb));//true
Integer biga=128;
Integer bigb=128;
System.out.println("两个128自动装箱后是否相等:"+(biga==bigb));//false
}
}
系统把-128~127之间的整数自动装箱成Integer实例
通过包装类提供的compare(XXX,XXX)可以比较两个基本类型值的大小(当两个boolean类型进行比较时,true>false)
相关文章推荐
- AIX 6.1无法正常安装,解决方案
- redhat6.1安装oracle11g
- RHEL6.1_ORACLE 11G安装
- RHEL 6.1 i386 x64下载地址
- aix 6.1 安装 oracle 11gR2 报java错误解决方法
- [转]用IDA 6.2导出的idc增强IDA 6.1的分析
- 计算广告学习笔记 6.1 广告交易市场 广告交易市场
- Windows Server 2003与IBM WebSphere Application Server V6.1 吐血整理
- 目测websphere6.1不支持dbcp1.4以及1.4以上版本
- rockscluster6.1,HPC集群的安装.
- Redhat 6.1无人值守安装
- AIX6.1安装SSH
- 获取iphone本机号码(在iOS 6.1, iPhone5 ,移动号码, xcode 4.6上测试通过)
- Liferay6.1:hook中追加portlet的配置项目的实现方法
- ida 6.1带 hex-rays下载地址
- 6.1 MSI/MSI-X Capability结构
- AIX6.1 线程模型说明
- 6.1
- redhat enterprise linux 6.1 升级 firefox
- 李刚程序开发的经验