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 ...
随机推荐
- luogu P5112 FZOUTSY
传送门 毒瘤出题人,卡我常数 如果后缀排序后将两两之间height\(\ge k\)的后缀放在一组,那么每次询问的答案就是\(\sum_{i} \binom{num[i]}{2}\)(num[i]是第 ...
- 第25月第11天 deeplearning.ai
1.网易云课堂 深度学习工程师 点击进入课程地址(英文)(收费) 点击进入课程地址(中文)(免费) 第一门 神经网络和深度学习 第二门 改善神经网络 第三门 结构化机器学习项目 第四门 卷积神经网络 ...
- 🍓 react,jroll滑动删除 🍓
import React, { Component } from 'react'; import '../src/css/reset.css'; import '../src/css/delete.c ...
- Codeforces Round #545 (Div. 2)(D. Camp Schedule)
题目链接:http://codeforces.com/contest/1138/problem/D 题目大意:给你两个字符串s1和s2(只包含0和1),对于s1中,你可以调换任意两个字符的位置.问你最 ...
- 转:MVC,MVP 和 MVVM 的图示
MVC,MVP 和 MVVM 的图示 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html 作者: 阮一峰 日期: 201 ...
- 自动安装gulpfile中所有依赖的模块
在gulpfile.js中定义任务的时候,需要引用不同的模块,这些模块需要使用 npm install --save-dev 命令进行安装,非常的繁琐.可以使用一个名为gulpfile-install ...
- shell编程 之 流程控制(条件语句和循环语句)
1 if ...else... 基本格式: if condition then commend else commend fi 当然也可以写到一行,用[ ]表明边界,用:表示分行.比如: if [ $ ...
- gradle记录
set-env.bat set "JAVA_HOME=G:\jdk" set "CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\ ...
- 【转】Java并发编程:并发容器之CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...
- 【转】thread.sleep(0)与thread.sleep(1)的区别
Thread.Sleep(0) Sleep的意思是告诉操作系统自己要休息n毫秒,这段时间就让给一个就绪的线程吧.当n=0时,意思是要放弃自己剩下的时间片,但是仍然是就绪状态.Sleep(0)只允许那些 ...