目录
一、java的数据类型
基本数据类型:(四类八种)
* 1.整型:int byte short long 区别是内存大小不同(能存放整数的范围不同)
* 2.浮点型:double、float
* 3.字符型:char
* 4.布尔类型:boolen
1.整型:
注意: long x=11222223333l;//常量默认为int 所以使用long类型赋值时常量后加L或者l
2.浮点型:
* float 4 单精度
* double 8 双精度
float X=3.14F;//常量 小数默认double float赋值要加F 或者f;
double y=3.14;
//一般使用小数计算使用BigDecimal类型
3.字符型:
* 字符char 字符串 String
* 单引号 双引号
*
* java中字符使用uncoide编码
* 字符的存储方式:例如A--65--二进制
*
* 字符的写法:a ,b,+ -
* tab delete enter....使用转义字符\t \n...
*/
char charnum='A';
String num1="suisnnjjdk";
System.out.println(charnum+1);
System.out.println(charnum);
System.out.println("a\tb");//tab
System.out.println("a\nb");//换行
System.out.println("a\bb");//退后一格
/**
4.布尔型:
java规范中,没有明确指出boolean的大小。在《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。
5.辅助知识:
* 数据类型转换:
* 自动转换:自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。小--大
* 强制转换:在赋值的信息有可能丢失的地方,编译器需要程序员用强制类型转换的方式来确认赋值。大--小
* 语法格式:目标类型 变量名=(目标类型)值
*/
int x;
x=(int)5.5;//强制类型转换
*进制问题:
* 二进制(0B开头)
* 八进制(0开头)
* 十六进制(0x或0X开头)
*/
System.out.println(0B00000111);//二进制 7
System.out.println(024);//八进制 20
System.out.println(0x1D);//十六进制 A(10)B(11)C(12)D(13)E(14)F(15) 29
二、运算符
算术运算符:
*算术运算符+ - * / ++ --
*/
int x=4;
int y=6;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);// 0 数据类型提升
System.out.println(x%y);
int z=10;
System.out.println(z++);//10
System.out.println(++z);//12
System.out.println(x+++x---x++);
// System.out.println(5/0);运行异常 系统会崩溃 停止运行
System.out.println(5.0/0);//输出无穷
/**
逻辑运算符:
A逻辑运算符B
* 逻辑运算符:值一定是boolean
* & 与 AB都为真时为真,有一个为假为假
* | 或 AB都为假时为假,有一个为真为真
* ! 非 真变假 假变真
* ^ 异或 两个不同为真 两个相同为假
*
* &&短路与 如果第一个表达式为假,第二个表达式不用计算
* ||短路非 如果第一个表达式为真,第二个表达不用计算
* 注意第二个表达式不执行带来的后果!!!
*/
public static void main(String[] args) {
boolean t=true;
boolean f=false;
System.out.println(t&f);
System.out.println(t&t);
System.out.println(t|f);
System.out.println(!t);
System.out.println(t^f);
//短路非的例子:
int x=5;
int y=6;
System.out.println((x++>50)&&(y++>50));//false
System.out.println(x);//6
System.out.println(y);//6
//短路或的例子
int a=2;
int b=3;
System.out.println((a++>1)||(b++>1));//false
System.out.println(a);//3
System.out.println(b);//3
/**
位运算符:
* 6 -6
* 原码 0000 0110 1000 0110
* 反码 0000 0110 1111 1001
* 补码 0000 0110 1111 1010
*反码:正数的反码是本身,负数的反码是负数的原码0变为1,1变为0
*
* 位运算符:
* & | ^
* 重点:~
* <<左移 每移动一位 *2
* >>右移 每移动一位 /2
*位操作就是把bit值当作真(1)或假(0)
*/
public static void main(String[] args) {
int x=5;
int y=11;
System.out.println(x&y);
System.out.println(x|y);
System.out.println(x^y);
System.out.println("**********");
int a=6;
/* 6
1111 1001(补码)
1111 1000(反码)
1000 0111(原码)
* */
System.out.println(~6);//二进制 是补码 要输出是十进制 先把补码转为原码