Java基础-基本数据类型
Java中常见的转义字符:
某些字符前面加上\代表了一些特殊含义:
\r :return 表示把光标定位到本行行首.
\n :next 表示把光标定位到下一行同样的位置.
单独使用在某些平台上会产生不同的效果.通常这两个一起使用,即:\r\n. 表示换行.
\t :tab键,长度上相当于四个或者是八个空格
Java中标识符规则:
演示标识符的规则:
1.只能包含字母(大小写都可以),数字,_,$
2.数字不能开头
3.不能使用关键字,但是可以包含关键字
规范:
标识符最好做到见名知意!
public class IdentifierDemo{ //Java中严格区分大小写 m 不等于 M // public static void Main(String[] args){ public static void main(String[] args){ System.out.println("hello"); } } // class 2Class2_${//数字不能开头 // class $_2Class2_${ ok // class public{ //关键字不能作为标识符 // class Mypublic{ //标识符可以包含关键字 class Student{ //标识符最好做到见名知意! }
Java中常量分为两种:
字面量:在程序中直接出现的值.
final变量:也称为final常量,这种变量一旦赋值,就不能改变.
字面量:
- 整数常量
- 小数常量
- 字符常量:用单引号(‘’)引起的数字,字母,字符.不能是空字符
- 字符串常量:用双引号引起的单个字符或是多个字符.可以是””空串
- 布尔常量:true false 注意区分大小写
- null常量:所有的引用数据类型的一个空值.
其中:整型常量有四种表示方式:
十进制:每位上的数只能是1-9,满10进1,默认的数值表示方式.
二进制:每位上的数只能是0,1,满2进1,以0b或者0B开头.
八进制:每位上的数只能是0-7,满8进1,以0开头.
十六进制:每位上的数只能是0-9,A-F,满16进1,以0x或者0X开头.
原码,补码,反码:指的是二进制数值
对于正数而言,原码,补码,反码三者相同.
10 -> 0000 1010 原码,反码,补码一致
负数的表示形式:
负数用补码表示,补码是反码+1得到的,反码是数值位取反得到,原码是对应正数的符号位变1得到.
符号位:
最高位:存储空间的第一个bit
byte 存储 10 :
符号位: 数值位:
0 000 1010
负数的原码:把对应正数的符号位变1
求:-10在计算机中的表示形式.
先求其原码:
符号位: 数值位:
1 000 1010
负数的反码:在负数的原码基础上,数值位全取反.
符号位: 数值位:
1 111 0101
负数的补码:在反码的基础上+1
符号位: 数值位:
1 111 011
如此我们在求一个二进制对应的数值时应:
- 先判断正负:
符号位为1,说明是负数,不能使用位权展开法
- 求出对应的正数
- 取反,就是这个负数的值
规律:
求一个负数的补码也就是负数在计算机中的表示形式:
找到对应正数的二进制形式,
从右往左,遇到第一个1时,这个1连同右边所有的数字保留下来,往左的所有数字全取反,就是这个负数的补码形式.
这个规律同样适用于:给定一个负数的补码.求其对应的数值.
byte类型的-1在内存中的表现形式
-1 1111 1111
-127 1000 0001
-128 1000 0000
127 0111 1111
0 0000 0000
规律:
一个类型所能表示的最大正数:符号位为0,数值位全1.
一个类型所能表示的最小负数:符号位为1,数值位全0.
变量
使用内存的一种方式.
变量的三要素:
变量类型,变量名,变量值
定义变量的两种格式:
1.定义和赋值一起进行
变量类型 变量名 = 初始值;
2.先定义,后赋值
变量类型 变量名;
变量名 = 初始值;
Java中的基本数据类型:
基本数据类型 (四类八种)
引用数据类型:类,接口,数组
整型: 字节数
byte 1
short 2
int 4
long 8
浮点型:
float 4
double 8
字符型:
char 2
布尔型:
boolean 1
默认情况下:
整型字面量是int型,
小数字面量是double型
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* 演示基本数据类型: 数值型: 整型: 浮点型: 字符型: 布尔类型: 总结:四类八种! */ public class VariableDemo2{ public static void main(String[] args){ //定义变量 //整型数值,如果是在前面的类型的表数范围内,可以直接赋值. //系统会自动的将字面量int型转换成和前面类型匹配的类型. /* byte b = 127; short s = 128; int i = 2154875; */ //快速的获取到int型的最大值 System.out.println(Integer.MAX_VALUE); //2147483647 System.out.println(Long.MAX_VALUE); //9223372036854775807 long l = 2187464684L; //字面量的int值不能超过int的表数范围,如果超过int型最大值,加L/l后缀,表明是一个long /* //程序中出现的浮点型字面量默认是double类型 //在数值后加后缀F/f,明确说明数值是float类型 float f = 3.14f; double d = 3.14; char ch = 'a'; boolean bool = ture; */ System.out.println(l); } }
变量的作用域
变量使用之前必须初始化!变量本质上就是一段内存空间,最好一行定义一个变量!
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* 变量的作用域: Scope 变量定义语句所在的大括号(block),就是这个变量的作用域 */ public class VariableDemo3{ public static void main(String[] args){ /* // a的作用域就是整个main方法里. int a = 10; System.out.println(a); // 10 { a = 20; //System.out.println(a); //20 } { System.out.println(a); //20 } //变量在使用之前必须赋值 int a; a=10; System.out.println(a); //10 //一行可以定义多个变量 //定义三个int型变量a,b,c,其中a,b只定义没有初始值.c有初始值10; int a,b,c=10; //System.out.println(a); //可能尚未初始化变量a System.out.println(c); //10 //一次定义三个同样值的变量 int b; int a = b = 10; System.out.println(a); // 10 System.out.println(b); // 10 */ //变量之间可以相互赋值 int a = 10; int b = a; System.out.println(b); //10 } }
类型之间的转换:
float类型可以用四个字节表示出比long类型更大的表数范围,其原因在于float内部的存储机制不同
1. java中标识符使用的原则是什么?
- 只能包含字母(大小写都可以),数字, _ , $ 符
- 不能是数字开头
- 不能使用关键字,但是可以包含关键字
规范:命名标识符最好做到见名知意!
2. Java中有多少种字面量?分别是?
六种:
- 整数常量:
- 小数常量:
- 字符常量:用单引号’’引起的 数字,字母,字符
- 字符串常量:用双引号引起的单个字符或者是多个字符.可以是空串””
- 布尔常量: true false
- null常量:所有的引用数据类型的一个空值
3. Java中变量的三要素是什么?
变量类型, 变量名, 变量值
4. 定义变量有几种格式?分别是?
两种:
- 定义变量类型时同时给变量赋值
变量类型 变量名 = 初始值;
- 先定义变量名,后赋值
变量类型 变量名;
变量名 = 初始值;
5. Java中基本数据类型都有哪些?
四类八种:
整型(byte(1),short(2),int(4),long(8))
浮点型(float(4),double(8))
字符型(char(2))
布尔型(Boolean(1))
6. Java中基本数据类型之间的自动类型转换的原则是?
7. 强制类型转换的格式是?
(类型名)要转换的值
8. 整型数值的四种表示形式分别是?进制之间的转换方式是?
十进制,二进制,八进制,十六进制
9. 负数的表示形式是?如何求出一个负数的补码形式?
负数在计算机中的表示形式:负数用补码表示.
首先找到正数的二进制形式,从右往左遇到第一个1,这个1连同右边的所有数字保留下来,往左的所有数字全取反,就是这个负数的补码形式.