J2SE基础小结
1. 九种基本数据类型的大小,以及他们的封装类。
| 类型 | 基本类型 | 大小(字节) | 默认值 | 封装类 |
| 整数型 | byte | 1 | (byte)0 | Byte |
| short | 2 | (short)0 | Short | |
| int | 4 | 0 | Integer | |
| long | 8 | 0L | Long | |
| 浮点型 | float | 4 | 0.0f | Float |
| double | 8 | 0.0d | Double | |
| 布尔型 | boolean | - | false | Boolean |
| 字符型 | char | 2 | \u0000(null) | Character |
| void | - | - | Void |
注:(1)java默认使用unicode作为编码,一个char作为2个字节来存储;
(2)Java的类型分成两种,一种是基本类型,一种是引用类型。两种的本质区别就是:基本类型是在堆栈处分配空间存“值”。但是引用类型,是在堆里面分配空间存“值”。Void是不能new出来,也就是不能在堆里面分配空间存对应的值。那就是一开始在堆栈处分配好空间了。所以,将Void归成基本类型。
基本数据类型封装之后:
(1)封装类可以有属性和方法,可以利用这些属性和方法来处理数据。比如:Integer对象有parseInt(String str),就是将字符串转换为int类型。
(2)基本数据类型跟封装类(引用类型)的默认值是不一样的。比如:int i,i的默认值是0;但是Integer j,j的默认值是null。
(3)封装类产生的是对象,对象默认值是null。一旦java看到null,就知道这个引用还没有指向某个对象,在任何引用使用之前,都必须为其指定一个对象,否则报错。
| 基本数据类型 | 封装类 |
| 基本数据类型只能按值传递 | 封装类按引用传递 |
| 基本数据类型在堆栈中创建,直接存储值,效率高,但可能发生内存泄漏 | 对象类型,对象在堆中创建,对象的引用在堆栈中创建 |
| 基本数据类型在声明时系统自动为其分配空间 | 引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间后才能赋值 |
| 基本数据类型跟封装类(引用类型)的默认值是不一样的,int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况 | |
| 注:数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改另一个数组中也看得见 | |
2、三种引用类型:类(class) 接口(interface ) 数组(array)
(1)Heap 堆空间:分配对象 new Student()
(2)Stack 栈空间:临时变量 Student stu
new一个对象的时候,如 new Student(); ,在堆空间分配空间并创建一个Student实例;
若写成 Student stu = new Student(); 则会把堆中的Student实例地址赋值给stu变量(栈空间),调用对象的方法时可以用stu来调用,实际上调用就是stu指向的对象的方法
3、switch()参数支持的类型
(1)在JDK 1.5以前,switch(expr)中,exper只能是byte,short,char,int类型,byte,short,char会自动类型转换为int
(2)从JDK 1.5开始,exper可以是enum类型
(3)从JDK 1.7开始,exper还可以是String类型
注:可以把相关的常量分组到一个枚举类型里
4、equals与==的区别
(1)==比较的是两个对象的地址
(2)equals比较的是两个对象的内容
注:如果一个类没有自定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果
J2SE基础小结的更多相关文章
- 点滴的积累---J2SE学习小结
点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...
- Java 基础--小结
Java 基础--小结 java基础 Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机( ...
- J2SE基础题
J2SE基础 八种基本数据类型的大小,以及他们的封装类.(有的也说是9中基本数据类型,包括了void) 基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 ...
- android基础小结
(注:此小结文档在全屏模式下观看效果最佳) 2016年3月1日,正式开始了我的android学习之路. 最最开始的,当然是学习怎样搭载环境了,然而苦逼的我在win10各种坑爹的指引下还是安装了一个星期 ...
- Hbase客户端API基础小结笔记(未完)
客户端API:基础 HBase的主要客户端接口是由org.apache.hadoop.hbase.client包中的HTable类提供的,通过这个类,用户可以完成向HBase存储和检索数据,以及删除无 ...
- xml基础小结
XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的“数据库” 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大小写.有且仅有一个根标签 ...
- J2SE学习小结
开始接触Java的学习,Java 2 Standard Edition为Java2平台的标准版,其包括了构成Java语言核心的类,此番学习算是学习了Java体系中的基础部分. 学习框架大致整理如下: ...
- J2SE基础:7.系统经常使用类一
1.Object对象 Object对象是全部对象的根类. 每一个对象都默认继承自Object类. equals():对象与对象之间是否相等. 逻辑上面的相等.equals 物理上面的相等(地址相等) ...
- Hibernate search使用示例(基础小结-注解方式)
(对于项目环境配置,一直没怎么看过.这次经历里从基础环境搭建到hibernate search示例的完成) 1.首先创建project,选择了web project. 2.导入hibernate se ...
随机推荐
- Ubuntu安装MongoDB
一.下载安装 首先,更新软件包列表以获取最新版本的存储库列表: sudo apt update 2.接着安装MongoDB包本身: sudo apt install -y mongodb ×加-y是为 ...
- List与逗号分隔的字符串相互转换
如果程序员想实现某种功能,有两条路可以走.一条就是自己实现,一条就是调用别人的实现,别人的实现就是所谓的API.而且大多数情况下,好多“别人”都实现了这个功能.程序员有不得不在这其中选择.大部分情况下 ...
- Challenge Create a Launch Pad
在头文件中定义网格体组件和重叠组件 UPROPERTY(VisibleAnywhere,Category="Components") UStaticMeshComponent* M ...
- python 模块 - pymongo模块
mongoDB 数据库: pymongo 操作: import pymongo # 连接mongo数据库 client = pymongo.MongoClient(host='localhost', ...
- ASP.NET MVC - 多国语言的简单实现
定义一个类 public class Book { public int ID { get; set; } public string Title { get; set; } ...
- Django中的信号基础知识
Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 1 2 3 4 5 6 7 8 9 10 ...
- WPF DataGrid 列显示0,-1(作废、删除)状态,1,2(支出、收入)类型,操作人(在其他表中),如何转换格式。
操作人,左联,Join on letf //容我补充 状态,类型,类似的转换,在xmlns中引入common xmlns:com="clr-namespace:XXX.Common&qu ...
- 必须要学会webpack打包,并到特别精通的程度
必须要学会webpack打包,并到特别精通的程度
- CentOS7开启防火墙及特定端口
开启防火墙服务 以前为了方便,把防火墙都关闭了,因为现在项目都比较重要,害怕受到攻击,所以为了安全性,现在需要将防火墙开启,接下来介绍一下步骤. 1, 首先查看防火墙状态: firewall-cmd ...
- codevs 1080 线段树练习(线段树)
题目: 题目描述 Description 一行N个方格,开始每个格子里都有一个整数.现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和:修改的规则是指定某一个格子x ...