阅读 133

转行学Java的第2天:数据类型运算符,感谢掘金大佬们的鼓励


我是张骚年,量子玄学信徒,祖安冲浪王者,B站白嫖大师,撕少保护协会资深会员,一个没有感情的表情包机器。

应届二本物理找不到工作,准备用五个月转行Java”上流社会“

每天唠一唠


昨天忐忐忑忑激激动动的发了第一篇学习笔记,那一刻想起了多年前的一个夜晚,初恋女友等在路灯下,当时的心情和昨天一样的忐忑,怕有人看,又怕没有人看。
image.png
感谢大佬们的鼓励,此处往后省略一万个大佬......
image.png
不多扯了,感谢感谢,开始今天的笔记。
image.png

今日学习目标


在昨天的基础上,学习代码注释,命名规范,变量,八种基本类型,类型强制装换和类型自动提升,表达式和运算符。

今日学习难点

a++ 和 ++a 的区别


首先结果都会将a的值加1,但是 如果把 a++ 作为一个整体的话  表达式的值为加1 之前的值

int a = 1;

// 这个地方打印的不是变量a的值  而是a++ 这个表达式的值  表达式的值是+1之前的值 结果为1
System.out.println(a++);

// 这个地方打印的是变量a的值 a++之后变量的值为 2
System.out.println(a);

// 这个地方打印的不是变量a的值  而是++a 这个表达式的值  表达式的值是+1之后的值 结果为3
System.out.println(++a);

// 这个地方打印的是变量a的值 ++a之后变量的值为 3
System.out.println(a);
复制代码

学习笔记 重点总结

学习笔记—注释的使用


代码注释:给代码起到解释说明作用的文字,可以屏蔽部分代码

单行注释 //
多行注释 /*   */
Javadoc注释 /**  */

学习笔记—标识符的命名规范


标识符:一种特殊的符号,给程序的各个部分起名字

语法要求:

  1. 字母 下划线 $ 数字组成,数字不能开头
  2. 大小写敏感,就是区分大小写的意思
  3. 不能和关键字 保留字一致
  4. 长度没有限制


规范要求:

  1. 望文生义
  2. 大小写
  3. 包名 全部小写
  4. 类名 首字母大写(所有单词)
  5. 变量名/方法名 第一个单词小写,后续单词的首字母大写
  6. 常量 全部字母大写 单词之间下划线连接

学习笔记—变量和八种基本类型

变量
**
变量:在内存中保存数据的一块儿空间,是保存数据的基本类型

变量的组成:由数据类型、变量名、值三部分组成


变量的使用步骤:

  1. 变量的声明 指定变量存储的数据类型和变量的名字  数据类型  变量名; int a;
  2. 赋值 通过变量的名字对变量赋值  变量名 =  值 ; a=1;
int a; //变量声明

a=1; //给变量赋值

// 声明的同时并赋值
int  a=12
//多个相同数据类型的变量声明并赋值

int  a=12, b , c=2 ;
复制代码

强类型语言:变量的类型必须和保存的值的类型一致


八种基本类型
**

基本类型 位数 可表示的数据范围
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B
float 4B
double 8B
boolean true false
char 2B


引用数据类型

类、数组、接口等都是引用数据类型

String类型也是引用数据类型。

 String   str="hello  World!";
复制代码

学习笔记—类型转化和自动类型提升


数据类型的自动提升

两个变量间相互赋值提升的规则,取值范围小的数据类型自动转换为取值范围大的数据类型

byte--->short--->int--->long--->float--->double  

char--->int--->long--->float--->double

byte a = 1;

int b = a;
复制代码

进行数学运算的时候,当参与的值

  1. 有double  结果提升为double
  2. 有float 无double 提升为float
  3. 有long 无double float  提升为long
  4. 其他情况 均提升为int


强制类型转换

转换的数据类型   变量名 = (要转换的数据类型)原数据类型的变量名;

long a = 1000l;

int b = (int)a;
复制代码

学习笔记—表达式和运算符


表达式

表达式:由运算符 变量或字面值组成的式子,表达式一定有值

运算符

运算符 示例
算术运算符 +(加)    -(减)    * (乘)    /(除)     %(取模)
赋值运算符 =       +=      -=       *=       /=      %=
++ (自增)  与   --(自减)  运算符 a++ :先使用a变量原始值,然后再把变量a的值加1;即先使用再加1
++a :先把变量a的值加1,然后使用变量a的值;即先加1再使用
关系运算符:用于判断两个被操作数的大小及是否相等的关系。使用比较运算符其返回结果一定为布尔值。 ==   (等于)        >   (大于)       >=   (大于等于)         <    (小于)        <=   (小于等于)     !=   (不等于)
逻辑运算符 & 与 | 或 !非
三目运算符 布尔(条件)表达式? 表达式1 :  表达式2
位移运算(左移 右移) 左移 << 右移 >> 无符号右移 >>> 有符号右移
位运算 & 同为1为1 有一个为0为0

今日学习名词

名词 含义
byte
short
int 整型
long
float 单精度浮点数
double 双精度浮点数
boolean 布尔类型
char
String 字符串

今日疑问—太菜了,这些问题我真不知道

image.png
image.png
  1. 强类型语言,有什么优点呢?
  2. 为什么要分类型?
  3. 到底什么是单精度?什么是双精度呢?

今日学习总结

今日心情


写文章真的是件神奇的事儿,本来学了几天Java都没什么动力,但是看到大佬们的鼓励和指点,就有了一种期待,我可以的。

今天学习的东西有点枯燥,感觉没什么意思,太零碎了,不过倒是不难。

image.png

ps:大佬们,数据类型和表达式你们学了多久?我学了一天。