匿名内部类

匿名内部类指的是没有名字的内部类,其必须在抽象类或接口基础上才可以定义。
例:采用匿名内部类简化类的定义

interface Message{   //定义接口public void print();
}
public class Test1_1_4_9 {public static void main(String args[]){fun(new Message(){ //直接实例化接口对象public void print(){ //匿名内部类中覆写print()方法System.out.println("Hello World");}});     //传递匿名内部类实例化}public static void fun(Message msg){   //接收接口对象msg.print();}
}
//结果
//Hello World

基本数据类型的包装类

Java为基本数据类型提供了对应的类,这些类称作包装类。
对象包装类(Object直接子类):Character、Boolean。
数值型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double。
关于Number类的定义:
Number是一个抽象类,里面一共定义了6个操作方法:intValue()、doubleValue()、floatValue()、byteValue()、shortValue()、longValue()。

装箱与拆箱操作

装箱操作:将基本数据类型变为包装类的形式;
每个包装类的构造方法都可以接收各自数据类型的变量;
拆箱操作:从包装中取出被包装的数据;
利用从Number类中继承而来的一系列xxxValue()方法完成。

例:使用int和Integer

public class Test1_1_5_11 {public static void main(String args[]){Integer obj=new Integer(10);  //将基本数据类型装箱(构造方法实例化)int temp=obj.intValue();   //将基本数据类型拆箱System.out.println(temp*2);  //数学计算}
}
//结果
//20

例:使用double和Double

public class Test1_1_5_11 {public static void main(String args[]){Double obj=new Double(10.2);  //装箱double temp=obj.doubleValue(); //拆箱System.out.println(temp*2);}
}
//结果
//20.4

例:自动装箱与自动拆箱

public class Test1_1_5_11 {public static void main(String args[]){Integer obj=10;       //自动装箱(直接装箱实例化)int temp=obj;       //自动拆箱obj++;System.out.println(temp*obj);}
}
//结果
//110

如果使用直接装箱实例化的方式,会使用同一块堆内存空间,而使用了构造方法实例化的包装对象,会开辟新的堆内存空间。故在进行包装类数据相等比较时,最可靠的方法是equals()。

利用Object类可以接收全部数据类型

流程:
1.基本数据类型
2.自动装箱(成为对象)
3.向上转型为Object

例:利用Object接收数据类型

public class Test1_1_5_11 {public static void main(String args[]){Object obj=10;    //先自动装箱后再向上转型,此时不能进行科学计算//Object不可能直接向下转型//所以要取出基本数据类型必须首先向下转型为指定的包装类int temp=(Integer)obj; //向下变为Integer后自动拆箱System.out.println(temp*2);}
}
//结果
//20

数据类型转换

常用的将String数据类型变为基本数据类型的方法
Integer类:public static int parseInt(String s);
Double类:public static double parseDouble(String s);
Boolean类:public static boolean parseBoolean(String s);

例:将字符串变为int型数据

public class Test1_1_5_1 {public static void main(String args[]){String str="123";    //字符串int temp=Integer.parseInt(str);   //将字符串转换为int型数据System.out.println(temp*2);}
}
//结果
//246

注意:如果要将一个字符串数据变为数字,就必须保证字符串中定义的字符都是数字,如果出现了非数字的字符,那么转换就会出现异常。

例:将基本数据类型转换为String型数据

public class Test1_1_5_1 {public static void main(String args[]){int num=100;String str=String.valueOf(num);   //变为String型System.out.println(str.replaceAll("0","9"));}
}
//结果
//199

Java学习总结:16相关推荐

  1. java学习第16天

    java学习第16天 多线程 进程和线程 进程Process 每一个程序运行就会创建一个进程. 进程是由操作系统管理 每一个进程独享一段内存空间,进程之间互不干扰. 线程Thread 线程是进程的组成 ...

  2. Java学习总结 16个亮点

    1.八大基本数据类型 byte(字节型8)   int(整型;32;程序中一般默认为int型)   short(短整型 16)  long(长整型 32)   float(浮点型 32)  doubl ...

  3. Java学习(16)--System 类/Date 类/ Calendar类

    System (1)系统类 ,提供了一些有用的字段和方法 (2)成员方法  A:运行垃圾回收器 public static void gc() B:退出 jvm public static void ...

  4. java学习(16):巩固练习

    /任务 2 编写控制台java程序,将以下数据使用合理类型变量进行接收赋值 3.5:185.59:8500.50 要求在控制台打印这些数据并只显示整数部分./ import java.util.Sca ...

  5. java中calendarr,Java学习(16)--System 类/Date 类/ Calendar类

    System (1)系统类 ,提供了一些有用的字段和方法 (2)成员方法 A:运行垃圾回收器 public static void gc() B:退出 jvm public static void e ...

  6. Java学习笔记16

    Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 现在我们看看源码中noti ...

  7. 2020年值得你学习的16个Java 开源项目!

    1.JavaGuide 把这个排第一没有个人因素影响哈! Guide 哥我自己大三开始维护的,目前算是纯 Java 类型项目中 Star 数量最多的项目了.但是,本仓库的价值远远(+N次 )比不上像 ...

  8. Java学习---RMI 技术分析[Hessian]

    一.什么是Hessian Hessian 是一个基于 binary-RPC 实现的远程通讯 library.使用二进制传输数据.Hessian通常通过Web应用来提供服务,通过接口暴露.Servlet ...

  9. Java必备:java入门、java学习

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1.Java入门 1-1.Java具有那些适合在Internet环境中 ...

  10. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

最新文章

  1. Python中read()、readline()和readlines()三者间的区别和用法
  2. mysql字符串函数混合使用_MySql字符串函数使用技巧
  3. 有重复元素的排列问题pascal题解
  4. Redisson分布式锁实战-1:构建分布式锁
  5. python计算器基础知识_Python基础(一):将Python当做计算器、编程的第一步
  6. Java 并发总结——进程与线程
  7. 在Ubuntu下用桌面图形界面挂载分区
  8. 聊聊springcloud的GatewayControllerEndpoint
  9. JAVA 中一个非常轻量级只有 200k 左右的 RESTful 路由框架
  10. Kafka分区与消费者的关系
  11. org.apache.hadoop.hbase.mapreduce.Driver 导入数据到HBASE table
  12. freeswitch的使用
  13. IMS+金蝶K3搭建简易版本供应商协同管理平台(SRM)
  14. 阿里云kafka安装
  15. linux运算器小程序报告,小程序运算
  16. 小米note3的开发者选项在哪里?怎么进入开发者模式?如何显示布局边界?
  17. 如何跟剛認識的女孩發短信(轉)
  18. 【毕业季·进击的技术er】青春不散场 恰同学少年
  19. awl多线程SYN***
  20. 在Magento产品分类页面创建推荐产品(Featured Products)

热门文章

  1. 在Ubuntu 14.04 64bit上搭建Scala开发环境
  2. 使用Nginx-rtmp-module搭建hls直播
  3. sgdisk 磁盘操作命令
  4. 递归和循环:跳台阶和变态跳台阶和矩形覆盖
  5. C# webform上传图片并生成缩略图
  6. (原)Eclipse 字体过小问题
  7. mybatis-错误记录java.lang.ExceptionInInitializerError
  8. 再发布一个windows live writer 插件 图标信息框 wlw plugin icon info frame
  9. valgrind——Cachegrind分析CPU的cache命中率、丢失率,用于进行代码优化。
  10. Category Archives: Linux