radix
二进制转为十进制: Integer.tobinaryString() 查看一个数据的二进制数据形式的。
//如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
System.out.println(Integer.toBinaryString(-7)); //sun给我们提供一个功能 // 11111001(补码)
其他进制转为十进制:个位*进制的(0次方开始,每次加一)最后求和。
测试java中数值型字面常量值的表示形式
整型:
二进制: 由0,1组成 0b|0B 开头表示二进制
八进制: 由0,1..7组成 以0开头表示八进制
十进制 : 默认十进制
十六进制 : 由0~9,a,b,c,d,e,f组成 a~f可以是大写可以是小写 以0x|0X开头
其他进制转为十进制:从后往前算,从最后一个的位置数开始*当前的进制数的次方(次方从0开始,每次+1) + 倒数第二位.. 最后求和
十进制转为其他进制 : 用十进制的数一直除以要转为的进制数,得到的余数从下往上看
浮点型
1.0.123 0->可以省略
科学计数法: e->10
1.23e3 ->1.23*10^3
1.23e-3 ->1.23/10^3
课下练习题: 1314 ->转为2,8,16进制表示
*/
public class Radix08{
public static void main(String[] args){
System.out.println(0b1010); //0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 2+8=10
System.out.println(01010); //0*8^0 + 1*8^1 + 0*8^2 + 1*8^3 = 520
System.out.println(0xD1); //1*16^0 + 13*16^1 = 209
System.out.println(0B1110); //14
System.out.println(016); //14
System.out.println(0.123);
System.out.println(.123) ;
System.out.println(1.23e3); //1230.0
System.out.println(1.23e-3); //0.00123
}
}
数据类型
java强类型的语言
基本数据类型: 四类八种
计算机中最基本的存储单位就是1字节 1byte=8bit
整型
表示形式 表示名称 大小 范围
byte 字节型 1个字节 8位 [-128,127]
short 短整型 2个字节 16位 [-32768,32767] +-3万
int 整型 4个字节 32位 +-21亿
long 长整型 8个字节 64位 非常大
如果要给比int类型大的long类型赋值,需要数据的后面添加L/l 推荐使用L
整数的字面常量值默认int类型
浮点型(小数)
表示形式 表示名称 大小 精度
float 单精度 4个字节 精确到7位左右
double 双进度 8个字节 精确到16位左右
小数默认的字面常量值是double类型
给double类型小的float类型赋值,需要在数据的后面添加一个f/F
浮点类型参与运算不准确
字符型
表示形式 表示名称 大小 范围
char 字符型 2个字节 0~65535
字符型的表示形式:
''一对单引号中存放单个数据表示字符型 'a' '好' '1' ',' ' '
0~65535之间的整数 Unicode字符集 -- > ASCII表中查看
字符型数据在参与运算的时候会转为对应的十进制的数参与运算
布尔型
true false 1位
引用数据类型: 类 接口 数组[]
public class DataType05{
public static void main(String[] args){
//byte
byte b1=127;
//short
short s1=-30000;
//long
long l1=10000000000l;
//double
double d=3.14;
System.out.println(d);
//float
float f1=3.14f;
System.out.println(f1);
System.out.println(f1==d);
//char
char ch1='a';
char ch2='好';
char ch3='1';
char ch4=' ';
//char ch5='';
char ch6=97;
char ch7='a'+1;
System.out.println(ch1);
System.out.println(ch6);
System.out.println('a'+1);
System.out.println(ch7); //b
//boolean
boolean True=true;
boolean flag=True;
System.out.println(flag);
}
}
java表示一个变量的容量多大是使用了数据类型描述的。
在java中 的数据类型主要有两种数据类型
基本数据类型
引用数据类型
疑惑:存储整数可以使用四种数据类型,那么具体怎么选择使用呢?
选用数据类型的原则: 在能满足需求的情况下,能小就小。节省内存空间。
小数的数据类型:
float(单精度浮点型) 32bit
double(双精度浮点型) 64bit
注意: 如果一个小数没有加上任何标识的时候,那么该小数默认是double类型的数据,如果
需要表示成float类型,那么需要在小数的后面加上f表示。f不区分大小写的。
布尔类型: 布尔类型只有两个 值,true或者false。
boolean 1字节或者4个字节
如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节,
如果使用boolean声明一个数组类型 的时候,那么每个数组的元素占
一个字节。
字符类型:
char 2字节(16bit)
八种基本数据类型:
整数:byte short int long
小数: float double
布尔: boolean
字符: char
字符串的数据类型是:String 引用数据类型,不属于基本数据类型。
*/
class Demo5
{
public static void main(String[] args)
{
//需求1: 定义一个变量存储一个正常人的年龄。
byte age = 120; //声明了一个byte类型的变量,该变量的名字叫age,把120存储到了age变量中。
//改变变量的值
age = 121;
//需求2: 定义一个变量存储老师口袋钱。
short money = 128;
//需求3: 定义一个变量存储老黎的钱。
int bossMoney = 1000000000;
//需求4: 定义一个变量存储周小川老板
long allMoney = 10000000000000000L;
//存储小数
float f = 3.14f;
double d = 3.1415926537;
boolean b = false;
char c = 'a';
String str = "hello world";
System.out.println(str); //需要获取一个变量存储的数据,只需要使用变量名即可。
}
}
凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
byte b1 =1;
byte b2 = 2;
byte b3 = (byte)(b1+b2);
System.out.println(b3); //3
System.out.println('a'+1); //98
两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
int i =10;
long l = 20;
i = (int)(i+l);
System.out.println(i);
*/
int i = 10; //
byte b = i; // 一个整数没有加上任何标识的时候,默认是int类型的数据。
//10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
//java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
//java编译器在编译 的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间 的。
System.out.println(b);
}
}
转义字符:特殊字符使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。
在java中有些字符有特殊的含义,没有办法正常表示,所以可以使用转义字符表示这个字符
转义字符从\开始
\"
\'
\\
常见的转义字符有:
\t 制表符 一个制表符位代表8个空格,一个汉字占2个空格,一个英文占1个空格
看前面的内容是否是制表符位的整数倍,如果是重新开启一个制表符位
如果不是,与前面的数据不全一整个制表符位
\b 退格 光标回删一格
\n 换行 光标从这一行的行尾换到了下一行的行头
\r 光标回到这一行的行首
注意: 如果是在windows系统上操作文件的时候需要换行,是需要\r\n一起使用的。
如果是在其他的操作系统上需要换行,仅需要\n即可。
/
import java.io.;
class Demo16 {
public static void main(String[] args) throws Exception
{
//System.out.println("Hello哈哈\rworld!");
File file = new File("F:\\a.txt");
FileWriter out = new FileWriter(file);
out.write("大家好\r\n");
out.write("你们好");
out.close();
}
}
/**
测试java中的转义字符
*/
public class Escape07{
public static void main(String[] args){
System.out.println("\"");
System.out.println('\'');
System.out.println('\\');
System.out.println("shsxtverygood\t上海尚学堂真棒!!!");
System.out.println("shsxtvery\tgood上海尚学堂真棒!!!");
System.out.println("shsxtverygood上海尚学堂真棒!!!\b ");
System.out.print("shsxtverygood上海\b尚学堂真棒!!!");
System.out.print("12345\n上山打老虎\n");
System.out.println("shsxtverygood上海尚学堂真棒!!!\r哈哈");
}
}
/**
常量:
在程序运行期间,其值不会发生改变的量叫做常量
分类:
字面值常量: 123 "abc" 1.23
整数常量 : 12 1214
小数常量 : 1.234
字符串常量 : "" "123abc,"
字符常量 : 'a' '1' ','
布尔常量 : true ,false
空常量 : null
自定义常量: 使用final关键字修饰的变量变成常量
*/
public class Constant03{
public static void main(String[] args){
final int A=3;
System.out.println(A);
//a=5;
System.out.println(A);
}
}