章节目录

  • 1.java 的内存划分
    • 1.1 内存空间
    • 1.2 栈空间
    • 1.3 堆空间
  • 2. 变量
    • 2.1 变量和字面量
    • 2.2 变量的命名
    • 2.3 注意点
    • 2.4变量的定义
    • 2.5.变量的初始化
    • 2.6 变量的作用域
  • 3. 数据类型-基本数据类型
    • 3.1 整数型
    • 3.2 浮点型
      • 3.2.1 float:单精度浮点型
      • 3.2.2 double:双精度浮点
    • 3.3 字符型:char
    • 3.4 布尔型:boolean
  • 4. 基本数据类型转换
    • 4.1小类型向大类型的转换
    • 4.2 大类型向小类型的转换
    • 4.3 int 和 char 类型之间的转换
  • 5. java 的错误类型

1.java 的内存划分

1.1 内存空间

java 定义了 8 中基本数据类型和引用数据类型(JDK 预定义的引用数据类型和自定义的引用数据类型),java 程序的执行会将内存划分为栈空间和堆空间

1.2 栈空间

自动分配,不需要程序员去申请

1.栈空间存取数据的效率高。

2.栈中的数据按“先进后出”的方式管理。

3.栈空间存储空间较小,不能存放大量的数据。

4.JVM 将基本类型的数据存放在栈空间。

1.3 堆空间

需要程序员去申请

1、堆空间存取数据的效率最低;

2、数据存放的位置随机分配;

3、堆空间存储数据的空间大,能存放大容量的数据。

2. 变量

在高级语言中普遍使用变量来管理内存中的数据

2.1 变量和字面量

在高级语言中普遍使用变量来管理内存中的数据

public static void main(String[] args) {int i =100;
}

代码解析:
1) i:表示变量,可变的量;
2) 100:字面量,变量中存放的具体数据;

2.2 变量的命名

(1)首字母是英文字母、$或下划线,后面由字母、数字、 $、下划线组成;

(2)变量的命名遵循见名知义的原则。

String name = “jack”; //姓名
int age = 25; //年龄

(3)Java 变量名建议不用中文。 (使用中文并没有语法错误)

(4)变量名首字母建议不用大写字母。

(5)用驼峰命名法命名多个单词组成的变量名。

String userName = “admin”;

(6)变量名不能使用关键字

2.3 注意点

(1)true、false 和 null 为小写,而不是象在 C++语言中那样为大写。

(2)无 sizeof 运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在 C 语言中那样数据类型的长度根据不同的平台而变化。这正是 Java 语言的一大特点。

(3)goto(保留字)和 const 不是 Java 编程语言中使用的关键字。

2.4变量的定义

类型 变量名 1,变量名 2…变量名 n;

int a,b,c;

2.5.变量的初始化

变量名=字面量
字面量可以是具体数值,也可以是返回数组的表达式;

2.6 变量的作用域

1、 Java 用一对大括号作为语句块的范围,称为作用域。
2、作用域中的变量不能重复定义。
3、离开作用域,变量所分配的内存空间将被 JVM(GC 垃圾会是机制)回收。

3. 数据类型-基本数据类型

学习Tips:可以将基本数据类型理解为一个个已经有固定大小的盒子,而 JAVA 程序在执行的过程中需要将用的数据存放在指定的大小的盒子中。

3.1 整数型


PS:在给 long 类型赋值的时候,如果值大于 2^31-1,那么需要在字面量后面加上 L,不区分大小写,因为 java中默认将输出作为 int 类型来计算。

3.2 浮点型

1)浮点类型用于表示小数的数据类型。

2)浮点数原理:也就是二进制科学计数法。

3)Java 的浮点类型有 float 和 double 两种。

4)Java 默认浮点类型计算的结果是 double 类型,字面量也是 double 类型。

3.2.1 float:单精度浮点型

1)float 类型共 32 位,1 位为符号位, 指数 8 位, 尾数 23 位。

2)float 的精度是 23 位(即能精确表达 23 位的数,超过就被截取了)。

3)小数是以尾数长度来表示精确度的,比如 pi=3.1415 的精度是 4 位。

4)float 存储数据的范围大于 int 类型,但精度比 int 要小,因为 int 的精度是 31 位。

5)浮点型的取值范围:

System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);

6)定义浮点型并初始化,字面量后面需要加上 F,不区分大小写

float f = 10.98f;

3.2.2 double:双精度浮点

1)double 类型,1 位符号位,11 位指数,52 位尾数。

2)double 范围远远大于 long,但 double 精度不如 long。 3)定义 double 类型并初始化,字面量需要加上 D,不区分大小写

double d = 98.99d;

PS:注:浮点运算就是实数运算,由于计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。

3.3 字符型:char

1)char 类型的字面量可以是一个英文字母、字符或一个汉字,并且由单引号包括。

2)Java 底层使用一个 16 位的整数来处理字符类型,该数值是一个字符的 unicode 编码值。

3)unicode

a、unicode 编码是全球范围内的编码方法。

b、unicode 编码的英文部分与 ASCII 码兼容(ASCII 表示范围 0~128), 同时英文字符和数字是连续编码的。

c、Java 在处理 char 类型的数据时,在底层是按 unicode 码来处理的。

d、编码是什么?计算机硬件系统只能用 0 和 1 表示数,我们人为地做了规定,某个数还可以表示一个字符。

例如:65 代表的字符是 A

4)转义字符:”\”

转义字符是”\”,通过转义字符,可表示一些特殊的字符。 或者将本身具有特殊含义的字符的特殊含义取消。例如:

'\n' 表示回车
'\t' 表示制表位字符,一个制表符表示向右跳 8-10 个字符
'\\' 表示\ '\' ' 表示单引号
'\"' 表示双引号

3.4 布尔型:boolean

1、什么是布尔类型 : boolean 类型用来表示肯定或否定两种可能。
2、为什么使用布尔类型? 布尔类型常用在分支语句、循环语句中。
3、boolean 类型的值有两个: true:表示肯定意义;false:表示否定意义;
4、布尔变量的定义 boolean isPass;
5、布尔变量的初始化 boolean isPass=true; isPass=59>=60;

4. 基本数据类型转换

4.1小类型向大类型的转换

  1. 小类型向大类型的转换会自动完成,即不需要程序员编写额外的代码,由 JVM 负责。提示:自动类型转换也叫"隐式类型转换"。

  2. 自动转换的规则:符号位会自动扩展, 负数补 1, 正数补 0。

  3. 自动类型转换包含以下情况:

(1)byte->short->int->long->float->double

(2)int 和 char 类型的数据在某些情况下可以自动相互转换。

PS:小类型向大类型转换一般情况下是安全的。当小类型的精度高于大类型时要注意精度丢失的隐患。

int i = 0x10000001;
float f = i;
System.out.println(i);// 268435457
System.out.println(f);// 2.68435456E8

4.2 大类型向小类型的转换

1、强转类型转换-简称强转

2、强制类型转换时,要注意边界数风险问题

int i =129;
byte b = (byte) i;
System.out.println(i); //129
System.out.println(b); //-127

4.3 int 和 char 类型之间的转换

Java 对 char 类型的数据在底层是按 int 类型来处理的。

int——>char

int i =97;
char c = (char) i;
System.out.println(i);//97
System.out.println(c);//a

char——>int

char c = 'A';
int i = c;
System.out.println(c);//A
System.out.println(i);//65

字符型进行计算:

char c = 'A';
System.out.println(c+1);//66

5. java 的错误类型

1)编译期错误 : 一般指语法错误,IDEA可以方便的定位和帮助解决错误;

2)运行期的异常错误 : 系统会提示错误的类型和出错的位置;

3)逻辑错误 : 逻辑错误是指程序可以编译运行,但程序执行的结果却不是预期的效果。

金无足赤,人无完人。

Java基础教程【第二章:Java数据类型和变量】相关推荐

  1. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  2. 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则

    第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...

  3. 尚硅谷Java入门视频教程第二章——Java基本语法

    尚硅谷Java入门视频教程第二章 第一章复习 课后习题 Java语言概述 第2章:Java基本语法 2.1 关键字和保留字 2.2 标识符(Identifier) 2.3 变量 2.3.1 变量基本概 ...

  4. [java手把手教程][第二季]java后端博客系统文章系统——No10

    项目github地址:github.com/pc859107393- 实时项目同步的地址是国内的码云:git.oschina.net/859107393/m- 我的简书首页是:www.jianshu. ...

  5. Java基础入门第二章

    大二学的java,一个假期过去,学的差不多都忘光了,在这里再重学一遍,也算不上重学吧,相当于复习吧.第一章讲的是jdk及开发工具的安装,这里就不多赘述了,废话不多说,我们直接从第二章开始. 2.1Ja ...

  6. Java基础入门第二章答案

    一.填空题 1. true和false 2. 基本数据类型.引用数据类型 3. & && | || 4. 5 5. 56 二.判断题 1. 错 2.对 3.错 4.对 5.错 ...

  7. Java基础教程,第三讲,运算符 变量定义 数据类型转换

    2019独角兽企业重金招聘Python工程师标准>>> 学完此次课程,我能做什么? 学完此次课程我们可以学会Java的运算符,以及数据类型的自动转换和强制转换. 学习此次课程,需要多 ...

  8. java的学习--第二章 java流程控制

    1.本章内容 控制代码如何执行.是否执行.执行多少次. 2.程序结构 顺序结构 分支结构 循环结构 2.1分支结构 1.if(){} 2.if(){}else{} 3.if(){}else if(){ ...

  9. java2实用教程--第二章基本数据类型与数组

    基本数据类型--浮点类型 public class Example2_1 {public static void main (String args[]) {char chinaWord = '好', ...

  10. java基础教程06讲:java标识符规则

    标识符就是用于给程序种变量.类.方法命名的符号. java语言的标识符必须以字母.下划线().美元符($),开头,后面可以跟任意数目的字母.数字.下划线().美元符号($) 这里的字母并不局限于26个 ...

最新文章

  1. 猴子请来的逗比项目流水总结
  2. android程序安装后图标不显示
  3. 一步步部署SharePoint Workflow 2013
  4. proe输入数字时成双出现_Proe/Creo步进电机正反转仿真详解
  5. OpenResty+lua+GraphicsMagick生成缩略图
  6. CF1375G. Tree Modification(贪心,黑白染色)
  7. Linux驱动(5)--关于Bootloader
  8. 每日一小练——高速Fibonacci数算法
  9. 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
  10. 设计师们必须要知道的素材网站
  11. Forth 语言概要
  12. wind10 使用Hyper-V安装centos7遇到的问题及解决方案
  13. 卡方分布、卡方独立性检验和拟合性检验理论及其python实现
  14. cad提取边界命令,CAD怎么提取文字轮廓线(教你快速提取文字的轮廓线)
  15. vip地址能ping不通_Nginx+keepalive局域网其它主机ping vip不通
  16. Zookeeper端口和ip修改
  17. Acala与全球知名跨链资产流动平台Ren达成合作
  18. 大二Web课程设计:服装网页设计题材——HTML+CSS汉服文化带背景音乐素材带视频(12页)
  19. 代谢组学数据处理软件——NormalizeMets
  20. win7 打开 计算机 慢,Win7电脑打开网页速度慢怎么办?

热门文章

  1. 【数据结构】二叉搜索树的python实现
  2. android 混淆移除log,关于安卓代码混淆和Release版本中去除Debug信息
  3. android label关闭按钮,iOS弹出关闭按钮标签:“OK”还是“Okay”?
  4. IntelliJ IDEA 背景色以及字体设置
  5. USACO Section 2.1 Sorting a Three-Valued Sequence 解题报告
  6. 初识lunece(同义词检索)
  7. js打印(控件)及多种方式
  8. EasyPR中文车牌识别系统开发
  9. c语言删除文件 Windows,基于Windows API实现遍历所有文件并删除的方法
  10. python opencv高斯滤波_【OpenCV】基于Python的图像高斯平滑和椒盐噪声处理 | 学步园...