笔记:尚学堂Java300集 第二章

写在前面:大家好,我是草莓橙须圆。毕业之前在CSDN和微信公众号活跃
欢迎关注我的公众号:【草莓橙须圆】 微信号(cmcxy8w)
微信公众号主要就是更新一些日常和有用的小工具
CSDN主要就是学习Java过程中总结的笔记

注释

1.单行注释: 使用“//”
2.多行注释: 以“/”开头以“/”结尾
3.文档注释: 以“/**”开头以“*/”结尾

标识符

定义:用来给变量、类、方法以及包进行命名
Notes:
1.标识符必须以字母、下划线_、美元符号$开头。
2.Java 标识符大小写敏感,且长度无限制。
3.标识符不可以是Java的关键字。
4.表示类名的标识符:每个单词的首字母大写,如Man, GoodMan
5.表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(), eatFood()

关键字

不能使用关键字作为变量名或方法名
表格瞅一眼有个印象就行
在这里插入图片描述

变量

1.本质:代表一个”可操作的存储空间”,空间位置确定,里面放置什么值不确定。
我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,且要声明其数据类型只有在变量声明以后,才能为其分配相应长度的存储空间。
2.声明格式
数据类型 变量名 [=初始值] [,变量名 [=初始值]…];
例如:

double salary;//建议一行只声明一个变量
int age = 18;//可以将变量的声明和初始化放在同一行中

3.变量的分类
①局部变量
声明位置: 方法或语句块内部
从属于: 方法或语句块
生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用
②成员变量(实例变量)
声明位置:方法外部、类的内部
从属于: 对象
生命周期伴随对象始终。如果不自行初始化,它会
自动初始化成该类型的默认初始值

默认初始值:
int: 0
double :0.0
char :‘\u0000’
boolean: false
③静态变量(类变量 )
声明位置: 类内部,使用static定义
从属于:
生命周期伴随类始终,从类加载到卸载。如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值

常量

定义:一个固定的值,例如:1、’a’、false、“helloWorld”等。
平时主要是利用关键字final来定义一个常量。常量一旦被初始化后不能再更改其值
一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的称为符号常量

变量和常量命名规范

(规范是程序员的基本准则,不规范会直接损害你的个人形象):
类名:首字母大写和驼峰原则: Man, GoodMan
类成员变量:首字母小写和驼峰原则: monthSalary
方法名:首字母小写和驼峰原则: run(), runRun()
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE

基本数据类型

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型和引用数据类型
在这里插入图片描述
图中数字代表字节。1字节=8位
引用数据类型 的大小统一为4个字节,记录的是其引用对象的地址!

数值型
整型变量/常量
整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一
在这里插入图片描述
Java 语言整型常量的四种表示形式
十进制整数,如:99, -500, 0
八进制整数,要求以 0 开头,如:015
十六进制数,要求 0x 或 0X 开头,如:0x15
二进制数,要求0b或0B开头,如:0b01110011

Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。不足20亿仍为认为是int型

浮点型变量/常量
带小数的数据在Java中称为浮点型。浮点型可分为float类型和double类型。
在这里插入图片描述
float类型又被称作单精度类型
double的数值精度约是float类型的两倍,又被称作双精度类型
浮点型常量默认类型也是double。
浮点类型常量有两种表示形式
十进制数形式,例如:3.14 314.0 0.314
科学记数法形式,如314e2 314E2 314E-2
float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

float a = 5200.11f;
double b = 521000.111;

浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。不适合在不容许舍入误差的金融计算领域。

java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。
BigInteger实现了任意精度的整数运算。
BigDecimal实现了任意精度的浮点运算。
不要使用浮点数进行比较!

字符型
字符型在内存中占2个字节,用单引号来表示字符常量
例如 ’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。
char 类型用来表示在Unicode编码表中的字符。Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode) char c = ‘\u0061’;

Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode值如表2-6所示。
在这里插入图片描述

char c1 = '\n';//代表换行符

布尔型
boolean类型有两个常量值,true和false,
在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。
不要这样写:if ( flag == true ),只有新手才那么写。关键也很容易写错成if(flag=true),这样就变成赋值flag 为true而不是判断!应该写if ( flag )或者if ( !flag)

运算符

在这里插入图片描述
算术运算符
算术运算符中++,–属于一元运算符,该类运算符只需要一个操作数。
算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。
二元运算符的运算规则:
  整数运算:
  1. 如果两个操作数有一个为Long, 则结果也为long。
  2. 没有long时,结果为int。即使操作数全为short,byte,结果也是int。
  浮点运算:
  3. 如果两个操作数有一个为double,则结果为double。
  4. 只有两个操作数都是float,则结果才为float。
  取模运算:
  1.其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。
赋值运算符
在这里插入图片描述
  
关系运算符
在这里插入图片描述
关系运算符用来进行比较运算。关系运算的结果是布尔值:true/false;
注意事项
=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==
==、!= 是所有(基本和引用)数据类型都可以使用> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char。char比较时自动转化为数字比较)

逻辑运算符
在这里插入图片描述
逻辑运算的操作数和运算结果都是boolean值。
短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。

位运算符
在这里插入图片描述

  1. &和|既是逻辑运算符,也是位运算符。如果两侧操作数都是boolean类型,就作为逻辑运算符。如果两侧的操作数是整数类型,就是位运算符。
      2. 不要把“^”当做数学运算“乘方”,是“位的异或”操作。
      
    字符串连接符 只有“+”
    “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

条件运算符 x ? y : z
其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值

注意
在这里插入图片描述
不需要去刻意的记这些优先级,表达式里面优先使用小括号来组织!!
逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)。如:a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c

类型转换

自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型
可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。
在这里插入图片描述
实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。

强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型。
在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
(type)var运算符“()”中的type表示将值var想要转换成的目标数据类型。

基本类型转化时常见错误和问题
操作比较大的数时,要留意是否溢出,尤其是整数操作时。

int money = 1000000000; //10亿
        int years = 20;
//返回的total是负数,超过了int的范围
        int total = money*years;
        System.out.println("total="+total);
//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生//了数据丢失
        long total1 = money*years;
        System.out.println("total1="+total1);
//返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
        long total2 = money*((long)years);
        System.out.println("total2="+total2);

L和l 的问题:
不要命名名字为l的变量,l容易和1混淆。long类型使用大写L不要用小写。

总结

1.注释可以提高程序的可读性。可划分为
单行注释 //
多行注释 //
文档注释 /**…*/
2.标识符的命名规则:
标识符必须以字母、下划线_、美元符号 开 头 。 标 识 符 其 它 部 分 可 以 是 字 母 、 下 划 线 “ ” 、 美 元 符 “ 开头。 标识符其它部分可以是字母、下划线“_”、美元符“ 线”和数字的任意组合。
Java 标识符大小写敏感,且长度无限制。
标识符不可以是Java的关键字。
3.标识符的命名规范
表示类名的标识符:每个单词的首字母大写,如Man, GoodMan
表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(), eatFood()
4.变量的声明格式:
type varName [=value] [,varName[=value]…];
5.变量的分类:局部变量、实例变量、静态变量
6.常量的声名格式
final type varName = value ;
7.Java的数据类型可分为基本数据类型和引用数据类,基本数据类型的分类如下:
整型变量:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean,值为true或者false
8.Java语言支持的运算符可分为:

算术运算符: +,-,*,/,%,++,–

赋值运算符 =
扩展赋值运算符:+=,-=,*=,/=
关系运算符: >,<,>=,<=,==,!= ,instanceof
逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>>
字符串连接符:+
条件运算符 ?:
9.基本数据类型的类型转换可分为:
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型
强制类型转换:用于显式的转换一个数值的类型,语法格式:(type)var
10.键盘的输入:Scanner类的使用

如果觉得有用,那就给俺个大大的赞吧。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值