package com.ujiuye.demo;
public class DataType01 {
public static void main(String[] args) {
// 数据类型
// 基本数据类型 四类
// 整数
// 小数[浮点数]
// 字符
// 布尔值
// 整数 数据类型 int
int age = 12;
// 在Java中,可以直接表示其他进制的正数
// 二进制 0b
int bin = 0b0000101010101010101;
System.out.println(bin);
// 八进制 以0开头
int oct = 0766;
System.out.println(oct);
// 十六进制 以0x 开头
int hex = 0x12acbdef;
System.out.println(hex);
// 在输出其他进制的时候,Java会直接转换为十进制进行输出
// 小数 带小数点的数字 数据类型 double
double price = 28.6;
// 字符 数据类型 char ,字符中,有且仅能放入一个字符,一个字符,使用单引号包裹,
char ch = ' ';
// 布尔值 表示真或者是假 用途 : 二值属性的表达使用布尔值
// 数据类型 boolean
boolean gender = true;//ture
boolean sex = false;
}
}
package com.ujiuye.demo;
public class DataType02 {
public static void main(String[] args) {
// 详细介绍四种数据类型
// 整数 四种具体的类型 byte short 短整型 int 默认[整型] long 长整型
// byte 字节 8bit 组成
// 符号位000 0000 -2^7 ~ 2^7-1 = -128 ~ 127
byte b1 = 120;
// byte b2 = 128;//不可以,因为数据超出范围
// short 短整型 2字节 16bit
// -2^15~2^5-1 -32768~32767
short s1 = 2345;
// short s2 = 32888;
// int 默认的整数类型 4个字节 32bit
// -2^31~2^31-1 -2147483648~2147483647 [10位以内]
int i1 = 123456789;
// int i2 = 9876543210;
// long 长整型 8 64bit
// -2^63~2^63-1 [20位以内]
long l1 = 123456789;
long l2 = 1234567890123456789L;
//当使用long类型表示整数的时候,超过整数的范围需要在末尾加一个L,大小写均可
// 小数 浮点数 float 漂浮
double d1 = 0.1;
double d2 = 0.2;
System.out.println(d1 + d2);
// float 占 4 字节
float f1 = 0.1F; // 默认的小数是double类型,如果使用float声明,需要在末尾添加一个F,大小写均可;
// double 占8字节 double是默认的小数类型
double dou1 = 0.2;
// 精确度不同
// float 4 字节 符号位 000 0000 0 [指数:表示整数]| 000 0000 0000 0000 0000 0000 [使用剩余的23位模拟小数]
// float 可以精确到小数点后6位,
// double 8字节 0000 0000
// 符号位 000 0000 0000 [指数;表示整数]| 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
// [使用剩余的52位模拟小数]
// 可以精确到小数点后15位,
// 字符 char 类似short 使用2字节 16bit
// 范围 : 0~65535
char ch01 = ' ';
// 布尔值 使用1个字节 只有两个值 true false
boolean boo01 = true;
boolean boo02 = false;
// Java中怎么定义常量 fianl 最终,不可以再改变
final int MAX_VALUE = 2147483647;
// MAX_VALUE = 0;
// Java中定义变量
// 数据类型 变量名 = 变量值;
// 一个变量的变量,在同一个方法中只能被定义一次;
// 变量在声明时可以先不赋值,在使用前一定要赋值,不赋值不可以使用;
int age;
age = 120;
System.out.println("老奶奶今年"+age);
// System.out.println(8>>1);
}
}
package com.ujiuye.demo;
/**
* @author Administrator
*
*/
public class Demo01 {
// main 是程序入口,一个 类只能有一个入口
/**
* @param args
*/
public static void main(String[] args) {
// 注释 : 给自己或者其他的程序员看的
// 用来解释说明程序的功能或者是注意事项
// 单行注释 , 只能注释一行中的内容
/*
* 可以注释多行内容
* 继续写注释
*
*
* */
//文档注释 alt + shift + j
// 单行注释的快捷键 Ctrl + /
// 多行注释快捷键 Ctrl + shift + /
// 文档注释 alt + shift + j
// 标识符
// 在Java标识符可以使用 所用的英文字母 a-zA-z 数字0-9 特殊符号: _ $
// [注意 : 中文可以使用,在开发时一定不要用]
// 标识符的命名规则
// 1,标志符不可以用数字开头
// 2,标识符可以Java的关键字或者是保留字
// 3,仅可以使用 : 英文字母 a-zA-z 数字0-9 特殊符号: _ $ ,不可以使用其他的特殊符号
// 标识符的命名规范
// 驼峰命名法[帕斯卡命名法]
// 大驼峰 每个单词的首字母大写,其余字母小写 XxxYyyZzz 一般用于工程名,类名
// 小驼峰 第一个单词全小写,从第二个单词首字母大写, xxxYyyZzz 一般用于,方法名 ,变量名
// 常量 全大写,每个单词之间可以使用_分隔
// int MAX_VALUE = 2147483647;
// 总体规则 ; 见名知意
// 在Java中严格区分大小写
int age = 20;
int Age = 20;
double price= 28.6;
/*
* System.out.println(); System.out.println(); System.out.println();
* System.out.println(); System.out.println();
*/
}
}
package com.ujiuye.demo;
public class Operator01 {
public static void main(String[] args) {
/*
* 算术运算符
*
* 赋值运算符
*
* 关系运算符
*
* 逻辑运算符
*
* 三元运算符
*/
// 算术运算符 四则运算 + - * /
int a = 10;
int b = 20;
// 在Java中 + - * 运算和生活中的数学运算是一样的,但是 / 不一样
// 在Java中,/是整除,只要商,不要余数
// 使用 % 专门用于求余数 [名次 : 取余| 取模]
// a 除以 b 10 除以 20 = 0 ... 10
System.out.println(a%b);
// 在Java中处理数值类型可以使用 + 号,同时也可以用+ 于表示 连接
// 在字符串[使用双引号包裹] 和变量[/常量]直接可以使用 + 连接[拼接]
// System.out.println("今天温度"+30);
// ++ 自增 : 自己加1个
int age = 18;
age++;// age = age + 1; 从等号的右边开始看,算完后,赋值给左边
System.out.println(age);
// -- 自减 : 自己减1个
int apple = 10;
apple--;
System.out.println(apple);
// ++变量 前自增 , 先加1
// 变量++ 后自增
// 如果变量自增完以后不需要赋值,则没有任何区别;
// 如果自增完以后需要复制给其他变量,则有区别
// ++变量 ,先加1,将自增以后的结果复制其他变量;
// 变量++ ,先将自己赋值给其他变量,然后自己再自增
int aa = 2;
int bb = aa++;
// bb = 2
// aa++ ->3
System.out.println(bb);
System.out.println(aa);
System.out.println("--------------------------------");
int x = 3;
// x = 3
int y = ++x;
// x = 4 y = 4
int z = y++;
// z = 4 y = 5
x++;
// x = 5
++y;
// y = 6
z++;
// z = 5
z = x++;
// z = 5 x = 6
System.out.println(x);//6
System.out.println(y);//6
System.out.println(z);//5
// >>n 右移 除法 2^n
System.out.println(16 >> 5);
// < System.out.println(4<<2); } } package com.ujiuye.demo; public class Operator02 { public static void main(String[] args) { /* * 算术运算符 * * 赋值运算符 * * 关系运算符 * * 逻辑运算符 * * 三元运算符 */ // 赋值运算符 // = int a = 99; // 将等号右边的值,赋值给左边 // 组合的赋值运算符 += -= *= /= %= a+=100;// a = a + 100; // a = 199 a-=1; // a = a-1; System.out.println(a); int x = 2 ; x%=3;// x =2 % 3; System.out.println(x); // 1234 取出每一位上的数字 // qian = 1 // bai = 2 // shi = 3 // ge = 4 // 提示 : 利用/ % // 取出最后一位 % 10 int num = 1234; int ge = num % 10;//1234 / 10 = 123 .... 4 System.out.println(ge); // 将1234 变为123 直接 除以10 num /= 10; int shi = num % 10; System.out.println(shi); // 将123变为12 直接 除以10 num /= 10; int bai = num % 10; System.out.println(bai); // 将12变为1 直接 除以10 num /= 10; int qian = num % 10; System.out.println(qian); } } package com.ujiuye.demo; public class Operator03 { public static void main(String[] args) { /* * 算术运算符 * * 赋值运算符 * * 关系运算符 * * 逻辑运算符 * * 三元运算符 */ // 关系运算符 // == != > < >= <= // 关系运算符的运算结果是布尔值 System.out.println(4==3); System.out.println(4!=3); System.out.println(4>3); //快速复制一行 Ctrl + alt + down System.out.println(4<3); //快速复制一行 Ctrl + alt + down System.out.println(4<=3); //将本行代码 下移一行 alt + down } } package com.ujiuye.demo; public class Operator04 { public static void main(String[] args) { /* * 算术运算符 * * 赋值运算符 * * 关系运算符 * * 逻辑运算符 * * 三元运算符 */ // 逻辑运算符 是用来两个布尔值的,运算的结果也是布尔值 // & 与 同时 并且 // 运算规则 /* * 真 & 真 = 真 * 真 & 假 = 假 * 假 & 真 = 假 * 假 & 假 = 假 * * 全真才为真,有假即为假 * * */ // int age = 18; // int rich = 500; // System.out.println(age > 10 & rich <1000);//真 & 真 = 真 // | 或 或者 // 运算规则 /* * 真 | 真 = 真 * 真 | 假 = 真 * 假 | 真 = 真 * 假 | 假 = 假 * * 总结 : 有真则为真,全假才为假 * 有的吃就不挑 * 宫保鸡丁| 红烧鱼| 回锅肉盖饭| 咖喱鸡 有一个都可以 有的吃就不挑 * * * */ // System.out.println(age > 20 | rich <300); //假 | 假 // ! 非 不是 !true 不是true -> false // 运算规则 : 非真即假 非假即真 // System.out.println(!(age > 30)); // ^ 异或 相异为真 ,相同为假 // 运算规则 /* * 真 ^ 真 = 假 * 真 ^ 假 = 真 * 假 ^ 真 = 真 * 假 ^ 假 = 假 * * 总结 : 相异为真 ,相同为假 * */ int age = 18; int rich = 500; System.out.println(age > 20 ^ rich <700); // Java中常用的逻辑运算符 // && 短路与 // 双& 和 单& 的区别 // & 左边为假 , 右边还要计算 // && 左边为假 ,右边不再计算,直接得结果,为假 // && 左边为真, 右边依然要计算,如果右边为真 -> 真结果为真,否则 为假 // || 短路或 // | 左边为真,右边还要计算 // || 左边为真,右边不在计算,直接得结果,为真 // || 左边为假,右边依然要计算,如果右边为真->为真,否则为假 // } } package com.ujiuye.demo; public class Operator05 { public static void main(String[] args) { /* * 算术运算符 * * 赋值运算符 * * 关系运算符 * * 逻辑运算符 * * 三元运算符 */ // 三元运算符 三目运算符 // A ? B : C // A + B // 变量类型 变量名 = 布尔表达式 ? 表达式1 : 表达式2; // 该 表达式需要一个变量接收 // 运算规则: // 布尔表达式 为真 执行 表达式1; // 如果为假 执行表达式2 // 求两个数的最大者 int res01 = 20 >10 ? 20 : 10; System.out.println(res01); int age = 19; String res = age >= 18 ? "可以烫头!": "回家做作业!"; // 注意 : 前面接收的类型,要和返回的结果保持一致; System.out.println(res); } } package com.ujiuye.demo; public class TypeTrans { public static void main(String[] args) { // 类型转换 // 不同类型的数据可以在一起运算,需要将他们转换为同一类型,就可以进行运算 // 类型转换分为两类 // 隐式类型转换[自动类型转换] 小范围数据转大范围 byte -> short -> int -> long // 当小范围的数据和大范围的数据在一起运算的时候,或首先首先将小范围的类型转换为大范围的类型, // 然后再进行计算 byte b1 = 20; short s1 = 30; short res = (short)(b1 + s1) ; //byte -> short 50int > short Type mismatch: cannot convert from int to short // 不可以直接将大范围的数据复制给小范围,需要进行强制转换 // 强制转换的格式 : 类型 变量名= (要转换为的类型)(要转换的数据) // 强制类型转换 [显示类型转换] // 就是强制将大范围转小范围 long l1 = 130; int i1 = (int)l1; short sh1 = (short)i1; byte by1 = (byte)sh1;//语法上没有问题 // 强转有风险,使用需谨慎 System.out.println(by1); // 小数 强转 // float -> double 自动转 // 小数转整数 // 常用数据类型的范围[从小到大] // byte -> short -> char -> int -> long -> float -> double double dou01 = 3.9999999999999; int int01 = (int)dou01; // 将小数转换为整数,会直接舍弃小数点以后的所有数据 System.out.println(int01); // 将 char 和 int类型转 // char -> int // int -> char 需要强制转换 char int02 = (char)('A' + 1); System.out.println(int02); // 将大小字母 Q 转换为小写字母q; char res01 = (char)('Q' + 32); System.out.println(res01); // 整数 和布尔值 不可以转换 // boolean boo01 = (boolean)1; } }