尚学堂Java学习日记Day2

尚学堂Java学习日记Day2

第二天上午学习了编程规范,标识符关键字、注释以及常量。
1.编程规章
任何地方的名字都要写得能够让其他人看懂;代码适当缩进为了整洁美观;
书写过程成对编程,以防遗漏导致报错。
对代码进行合理注释,利人利己。

2.标识符
1.所谓标识符就是程序员在定义java程序时,自定义的一些名字,例如下图程序里关键字class 后跟的Hello,就是我们定义的类名。类名就属于标识符的一种。
标识符除了应用在类名上,还可以用在变量、函数名、包名上。(以后会介绍)
在这里插入图片描述
2.标识符必须遵循以下规则
a. 标识符由26个英文字符大小写(a到z)、数字(0~9)、下划线()和美元符号( ) 组 成 。 b . 不 能 以 数 字 开 头 , 不 能 是 关 键 字 c . 严 格 区 分 大 小 写 d . 标 识 符 可 以 为 任 意 长 度 例 : 0 1 )组成。 b. 不能以数字开头,不能是关键字 c. 严格区分大小写 d. 标识符可以为任意长度 例:_01 )b.c.d.01 正确
100hello 错误 数字开头
hello world 错误 中间空格

3.关键字
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
老师给了我们一幅常见关键字的图作参考
尚学堂Java学习日记Day2_第1张图片

4.注释

a.注释的作用
通过注释提高程序的可读性,是java程序的条理更加清晰,易于区分代码行与注释行。另外通常在程序开头加入作者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流。
注释的种类
b.单行注释(line comment)用//表示,编译器看到//会忽略该行//后的所文本
多行注释(block comment)用/* 。。。/表示,编译器看到/时会搜索接下来的/,忽略掉/ */之间的文本。

c.文档注释用/** */表示,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

尚学堂Java学习日记Day2_第2张图片
在这里插入图片描述

尚学堂Java学习日记Day2_第3张图片

5.常量
常量是指在程序运行过程中其值不能改变的量
Java中常量的分类:
整数常量 : 1 , 45 ,3
小数常量 : 1.345 2.78
布尔常量 : true,false
字符常量 : ‘a’,‘A’,‘0’
字符串常量 :”History” “” 、“a” 、“ “
null常量 : 只有一个值null

转义字符的概述:
特殊字符使用\其转化成字符的本身输出,那么使用”\”的字符称作为转移字符。
需求:使用输出语句,打印出带引号的信息例如输出。
System.out.println(“teacher said”java is fun””);编译是无法正常通过的。语法有错误,编译器读到第二个引号就认为是字符串的结束,剩余的不知道怎么处理。如何解决这个问题:java中使用转义字符来表示特殊的字符。一个转义字符以反斜杠(\)开始。
问题:想要打印带引号的字符串怎么办,就可以使用反斜杠(\)后跟字符,这个反斜杠就是转义字符。
常用的转义字符:
\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t 制表符,相当于Table键
\b 退格键,相当于Back Space
\’ 单引号
\” 双引号
\ 表示一个斜杠
上述问问题解决:System.out.println(“teacher said"java is fun”");
注意:换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

个人错误例子
尚学堂Java学习日记Day2_第4张图片
正确例子
尚学堂Java学习日记Day2_第5张图片

尚学堂Java学习日记Day2_第6张图片

下午学习了进制的转换、变量和数据类型的转换。午休时老师带我们科普了点主机配件的小知识。
关于进制学生时代也学过就不做多解释了
A:二进制 由0,1组成。以0b开头。
B:八进制 由0,1,…7组成。以0开头。
C:十进制 由0,1,…9组成。整数默认是十进制。
D:十六进制 由0,1,…9,a,b,c,d,e,f(大小写均可)组成。以0x/0X开头。

6.变量
变量:可变的量,主要用于存储数据
a.分类:
基本数据类型:4类8种(只占用一块内存)
引用数据类型:类,接口,数组。(占用两块内存)
概念图
尚学堂Java学习日记Day2_第7张图片

数据基本类型
1B(byte,字节)= 8 bit(位);
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;

老师额外给我们科普了GB之后的数据类型
TB、PB、EB等等

1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),
1PB(Petabyte 千万亿字节 拍字节)=1024TB,
1EB(Exabyte 百亿亿字节 艾字节)=1024PB,
1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,
1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024 ZB,
1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.
注:“兆”为百万级数量单位。

老师还和我们讲述了大数据至少以TB起步

①整型
占用字节数 比特/位 取值范围
byte(字节型) 1 8位 [-128 , 127]
short(短整型) 2 16位 [-32768,32767]
int (整型) 4 32位 [-21亿, 21亿]
long(长整型) 8 64位 +_9223372036854775807

注意:整数数值默认为int类型,如果需要定义一个long类型的变量,当超出int的范围时,需要在该值后加 l或者L

②浮点型
float(单精度) 4
double(双精度) 8
float默认保留8位数字,double默认保留17位数字
注意:浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加 f或者F

③字符型(0~65535)
char(字符型) 2 一个字符能存储一个中文汉字
要求:用 ’ '将字符括起来, 最多存储一个字符
用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容,它的的取值范围是在Unicode编码中规定的,而Unicode编码规定char的取值范围就是0~65535,没有负值

④逻辑型(布尔型)
boolean(布尔类型) 占1个bit, 1/8个字节

变量的声明
相当于造盒子
格式: 类型 名字 [=值,[名字=值….]]
案例:
int i 声明了一个整形的变量。
double d 声明了一个double数据类型的变量
float f 声明了一个float数据类型的变量。
备注:变量名的首字母都一般都是以小写字母开始。
变量的初始化
初始化方式1: 数据类型 变量名字 = 数值。
初始化方式2: 数据类型 变量名字 ;
变量名字 = 数值。
案例:
方式1: double d = 3.14;
方式2: double d ; d = 3.14 ;
练习:

超过界限后的报错
尚学堂Java学习日记Day2_第8张图片

尚学堂Java学习日记Day2_第9张图片
正确代码
尚学堂Java学习日记Day2_第10张图片

尚学堂Java学习日记Day2_第11张图片

注意点
1)、必须先声明后使用

2)、必须存在值才能使用

3)、同一个作用域(方法内) 声明时变量名不能相同

7.数据类型的转换

Java中可以进行不同数据类型的加减乘除运算吗?是可以的。在算术运算符中已经体验过如果两个整数(int)相除会去掉小数部分。如果需要保留小数部分,可以让除数或者被除数变为double类型的(5变为5.0)。其实Java是自动的将int的那个数变为了double类型了也就是Java自动的将整数变为了浮点数。例如5/2.0 其实是5.0/2.0
1自动类型转换(也叫隐式类型转换)
可以将一个数赋值给更大数值范围的变量,例如可以经byte 变量赋值给short变量可以将short变量赋值给int变量可以将int变量赋值给long变量。
Java内部其实做了工作就是自动将数值进行了类型提升,就叫做自动类型转换(也叫隐式类型转换)
小大
byte b = 1; //00000001
short s = b; //00000000 00000001
int i = s;
long lon = i;
double d = lon; //1.0

自动类型转换(也叫隐式类型转换)
要实现自动类型的转换,需要满足两个条件,第一两种类型彼此兼容,第二目标类型取值范围必须大于源类型。所有的数字类型,包括整形和浮点型彼此都可以进行转换。

例如:
byte b=100;
int x=b;
System.out.println(x);//程序把b结果自动转换为int类型。

2强制类型转换(也叫显式类型转换)
不可以将一个数值赋给范围更小数值范围的变量,除非进行类型转换。
byte b = 100;
b = b + 2;
System.out.println(b);
上述例子发生了什么,发生了类型转换。
b+2 遇到了加法运算,2默认是int类型,byte类型b变量存储的值自动类型提升为了int类型。执行完加法运算后的结果就是int类型,想要将int的类型值放入到byte类型变量b中,无法放入,编译报错。
byte b=1;
b=(byte)(b+2);

当两种类型彼此不兼容,或者目标类型取值范围小于源类型(目标是byte源是int)
无法自动转换,此时就需要进行强制类型转换。

强制类型转换需要注意:
损失精度!!!
int a=128;
byte b=(byte)a;
System.out.println(b);//-128
/*
* 此时的强转已经造成了数值的不准确
*/
int
尚学堂Java学习日记Day2_第12张图片

再次分析此行代码
byte b = 100;
b = b + 2;
System.out.println(b);
编译:提示如下错误。

尚学堂Java学习日记Day2_第13张图片

尚学堂Java学习日记Day2_第14张图片

以上是第二天学习的内容。

你可能感兴趣的:(尚学堂Java学习日记Day2)