java基础语法学习day03---初学者必看详解

素颜马尾好姑娘i 2023-01-20 09:34 13阅读 0赞

java基础语法学习day03—-初学者必看详解

    • 一、数据类型
    • 1、基本数据类型
    • 2、数据类型转化
      • 2.1、基本数据类型的注意事项
      • 2.2、 数据类型的转换
    • 二、运算符
      • 1、算术运算符
      • 2、赋值运算符
      • 3、关系运算符
      • 4、连接运算符
      • 5、逻辑运算符
      • 6、三元/目运算符

一、数据类型

1、基本数据类型

  1. java分基本数据类型和引用数据类型
  2. 基本数据类型只有8
  3. 4个整数2个小数2个非数
  4. 1)byte (字节) 1字节 -128~127
  5. 不常用(IO学习时使用)
  6. 2)short(短整型) 2字节 -32768~32767
  7. 不常用(和其他语言兼容使用)
  8. 3)int (整型) 4字节 -21亿~21亿
  9. 最常用的类型
  10. 4)long (长整型) 8字节 很大
  11. 较常用(int类型不够用时使用)
  12. 当赋值的数值大于int的取值范围时
  13. 需要在这个值的后面加lL
  14. 5)float (单精度) 4字节
  15. 不常用,精度不足
  16. 正常赋值时,
  17. 如果赋小数值,需要在小数值
  18. 后加fF
  19. 6)double(双精度) 8字节
  20. 常用
  21. 精度较高
  22. 7)char (字符) 2字节 0~65535
  23. 保存一位字符
  24. 而且有且只有一位
  25. 'a' -- 97
  26. 'A' -- 65
  27. '0' -- 48
  28. 特殊字符:转义符:\
  29. ' -- \'
  30. \ -- \\
  31. 8)boolean (布尔) 1字节
  32. 取值只有true或false

2、数据类型转化

byte———short——-int——long——-float———double

char——

  • 自动类型转化(隐式类型的转化)

    从小类型到大类型是可以自动完成。

  • 强制类型转化(显式类型的转化)

    从大类型转小类型,需要进行强制转化符

    (需要转化成的类型)变量

    但是这样的话,可能会造成数据精度丢失或者溢出。

2.1、基本数据类型的注意事项

1)java中的数据直接量
在java代码中直接写出的数值
整数直接量是int类型
小数直接量是double类型
2)数据的溢出
当一个数据类型的变量接收了
大于自己范围的数据
就会产生溢出,这个现象不是
我们想看到的,所以了解即可,
不用研究
3)时间偏移量
1970-1-1 00:00
开始到程序运行时经过的毫秒数
long time=System.currentTimeMillis();
4)舍入误差
浮点型的计算可能会发生
计算结果不精确的情况
需要使用今后学习的引用类型解决
现阶段只需要了解这个现象就可以了

案例:

  1. package cn.tedu.day06;
  2. public class DataTypeChange {
  3. public static void main(String[] args) {
  4. int x = 5;
  5. //int---byte
  6. byte b = 56;
  7. System.out.println(b);
  8. //(要强转的类型)变量
  9. byte b1 = (byte)128;
  10. System.out.println(b1);
  11. //1、自动类型的转化
  12. int x1 = 5;
  13. int y1 = 6;
  14. long z = x1 + y1;
  15. System.out.println(z);//long
  16. long l1 = 1024l;
  17. //2、强转的时候,如果数据在转化范围内,就不会发生数据溢出
  18. int i = (int) l1;//强制转化
  19. long l2 = 1024l * 1024 * 1024 * 4;
  20. int i2 = (int)l2;//会发生溢出
  21. System.out.println(i2);//0
  22. double pi = 3.1415926578976588;
  23. float f = (float) pi;//会造成精度的损失
  24. System.out.println(f);//3.1415927
  25. //3、数据类型运算的时候,自动类型的转化
  26. long hm = 365 * 24 * 60 * 60 * 1000;
  27. double d = 800 - 600.5;
  28. System.out.println(d);//199.5
  29. double d2 = 80 / 100;
  30. System.out.println(80 / 100);//0
  31. System.out.println(d2);//0.0
  32. double d3 = 80.0 / 100;
  33. System.out.println(d3);//0.8
  34. //多种基本数据类型参与运算的时候,结果会发生自动类型的转化。
  35. }
  36. }
  • Byte/char/short——>int

    • int直接量可以直接赋值给byte、char和short,只要不超过表示的范围。

      char c = 65;
      byte b = 45;
      short s = 23;

    • byte、char、short三种类型参与运算的时候,先进行转化为int类型,再参与运算。

2.2、 数据类型的转换

1)java中运行计算的原则
java中只允许相同数据类型的数据
发生计算,计算结果还是这个类型

2)自动类型转换(隐式类型转换)
当不同数据类型的数据发生计算时
java系统会自动将较小的数据类型
转换成较大的数据类型
,计算结果是较大的数据类型

小 大
byte short int long float double
char
1.float类型比long类型大
2.byte\short\char计算结果都是int
3)强制类型转换(显式类型转换)
由程序员编写代码
将一个数据转成指定的类型
(<类型>)<变量\数值>
double d=12.5;
int i=(int)d;//12.5–>12
强制类型转换可能造成精度丢失
当两个不同数据类型的数据计算时
想要较小的数据类型的结果

二、运算符

1、算术运算符

  1. + - * /
  2. %
  3. ++ --
  4. package cn.tedu.day06;
  5. /**
  6. * 运算符
  7. * @author zhangjian
  8. *
  9. */
  10. public class OperatorDemo {
  11. public static void main(String[] args) {
  12. //1.算术运算符
  13. System.out.println(3 + 2);//5
  14. System.out.println(3 - 2);//1
  15. System.out.println(3 * 2);//6
  16. System.out.println(3 / 2);//1
  17. //发生异常-java.lang.ArithmeticException 算术异常
  18. //System.out.println(3 / 0);
  19. //% 参与运算的时候,结果的正负与%符号左边的正负有关系。
  20. System.out.println(5 % 3);//2
  21. System.out.println(-5 % 3);//-2
  22. System.out.println(-5 % -3);//-2
  23. System.out.println(5 % -3);//2
  24. //++ --
  25. int x = 5;
  26. x++;//x = x + 1;
  27. System.out.println(x);//6
  28. ++x;//x = x + 1;
  29. System.out.println(x);//7
  30. x--;
  31. System.out.println(x);//6
  32. --x;//x = x - 1;
  33. System.out.println(x);//5
  34. //a++ 后增
  35. /*
  36. * 当a++后增,参与运算的时候,先进行参与运算,后进行自增。
  37. */
  38. int a = 6;
  39. int b = a++;
  40. System.out.println("a = " + a + ",b = " + b);//a = 7,b = 6
  41. /*
  42. * ++m 前增
  43. * 当++前增,参与运算的时候,先进行自增,再参与运算。
  44. */
  45. int m = 6;
  46. int n = ++m;//先进行++m,得到m=7,后将m=7赋值给n,得到n=7
  47. System.out.println("m = " + m + ",n = " + n);//7 7
  48. int p = 6;
  49. int q = p--;
  50. System.out.println("p = " + p + ",q = " + q);//5 6
  51. int i = 8;
  52. int j = 7;
  53. i = --j;//i = 6; j = 6
  54. System.out.println("i = " + i + ",j = " + j);
  55. j = ++i;//i = 7;j = 7;
  56. System.out.println("i = " + i + ",j = " + j);
  57. }
  58. }

2、赋值运算符

= 赋值运算符,用于对变量进行赋值。把=右边的值赋值给左边的变量。

OperatorDemo01

复合的赋值运算符

+=

  1. -=
  2. *=

/=

  1. package cn.tedu.day07;
  2. /**
  3. * 赋值运算符:=
  4. * @author zhangjian
  5. */
  6. public class OperatorDemo01 {
  7. public static void main(String[] args) {
  8. //
  9. int num = 19, index;
  10. System.out.println(num);
  11. System.out.println(index = num % 3);//1
  12. System.out.println(index);//1
  13. int x, y, z;
  14. x = y = z = 66;
  15. System.out.println(z);//66
  16. //复合赋值运算
  17. x += 5;//计算的时候:x = x + 5;
  18. System.out.println(x);//x=71
  19. x -= 5;//x = x - 5;
  20. System.out.println(x);//x = 66
  21. }
  22. }

3、关系运算符

用来判断数据之间的大小关系。

包括:大于、小于、等于(==)、大于等于(>=)、小于等于、不等于(!=)六种运算符。

关系运算符的判断结果为:boolean类型的。关系成立结果为true,关系不成立结果为false。

OperatorDemo02

  1. package cn.tedu.day07;
  2. /**
  3. * 关系运算符:
  4. * @author zhangjian
  5. *
  6. */
  7. public class OperatorDemo02 {
  8. public static void main(String[] args) {
  9. int max = 30;
  10. int num1 = 6;
  11. boolean b1 = max > 35;//false
  12. boolean b2 = num1 % 2 == 0;//true
  13. boolean b3 = num1 % 2 != 0;//false
  14. System.out.println(b1);
  15. System.out.println(b2);
  16. System.out.println(b3);
  17. }
  18. }

4、连接运算符

使用 + 进行字符串的连接。

字符串: 双引号引起来的 “ ”

OperatorDemo03

  1. package cn.tedu.day07;
  2. /**
  3. * 连接运算符:+
  4. * @author zhangjian
  5. *
  6. */
  7. public class OperatorDemo03 {
  8. public static void main(String[] args) {
  9. //love520
  10. System.out.println("love520");
  11. int num = 1314;
  12. //love1314
  13. System.out.println("love" + num);//love1314
  14. //love1314520 ---- love1314 + 520 ---love1314520
  15. System.out.println("love" + num + 520);
  16. //love1834 ()优先级 优先计算括号里面的
  17. System.out.println("love" + (num + 520));
  18. System.out.println(520 + "love");//520love
  19. System.out.println(520 + 1314 + "love");//1834love
  20. System.out.println(520 + (1314 + "love"));//5201314love
  21. String msg = "love";
  22. msg = 520 + 1314 + msg + 521 + 1314;
  23. System.out.println(msg);//1834love5201314
  24. msg = "love";
  25. msg = 520 + (1314 + msg + 521) + 1314;
  26. System.out.println(msg);//5201314love5211314
  27. }
  28. }

5、逻辑运算符

建立在关系运算之上的,包括:与&& 或 || 非 |

运算结果为:boolean类型的。









































变量b1 变量b2 b1&&b2 b1||b2 !b1
true True True True False
True False False True false
False True False True True
False false False False true

使用&&运算符:

两个boolean类型的值,参与&&运算的时候,只有两边都为true的时候,结果才为true;

真真为真。

OperatorDemo04

  1. package cn.tedu.day07;
  2. /**
  3. * && || !
  4. * 逻辑运算符:
  5. * @author zhangjian
  6. *
  7. */
  8. public class OperatorDemo04 {
  9. public static void main(String[] args) {
  10. int score = 58;
  11. //小明参加考试,如果考试成绩在80到100之间,奖励个四大名著一部。
  12. // 80 <= score <= 100
  13. boolean b = score >= 80 && score <= 100;
  14. //score >= 80 score <= 100 关系运算 boolean
  15. System.out.println(b);//false
  16. //会唱歌或者会跳舞
  17. boolean sing = true;
  18. boolean dance = false;
  19. boolean b2 = sing || dance;
  20. System.out.println(b2);
  21. int x = 5;
  22. boolean b4 = sing || x++ > 3;
  23. System.out.println(b4);
  24. System.out.println(x);
  25. /*int m = 100;
  26. int n = 200;
  27. boolean b5 = (m > n) || (m++ > 200);
  28. System.out.println(b5);//false
  29. System.out.println(m);*/
  30. //短路逻辑
  31. int m = 100;
  32. int n = 200;
  33. boolean b5 = (m > n) && (m++ > 200);
  34. System.out.println(b5);//false
  35. System.out.println(m);//m = 100,不执行
  36. //! 非
  37. boolean isRain = true;
  38. boolean b7 = !isRain;
  39. System.out.println(b7);
  40. }
  41. }

6、三元/目运算符

回顾:

1、JDK/JRE/JVM

2、跨平台

3、java环境变量的配置

4、Eclipse的使用

5、关键字

6、标识符

7、驼峰命名法

包、变量、方法、常量等

8、变量

9、常量

10、数据类型

基本数据类型

byte、short、int、long

float、double

char

boolean

类型转化:

自动类型转化

强制类型转化

11、运算符

算术运算符:+ - * /

++ –

%

发表评论

表情:
评论列表 (有 0 条评论,13人围观)

还没有评论,来说两句吧...

相关阅读