我叫鱼汤,不仅是一名java方面的菜鸡,也是初次接触博客的菜鸡,昨天发完第一篇博客才发现发到了“文章”里,而自己写的一般是发“随笔”的,虽然对我没什么影响但是还是有点小不爽......
这里要整理的是我的第二份笔记,java的基础语法。
一、标识符
上一篇笔记里写的“HelloWorld”里面,真正能被我随意操控的只有那一句引号里面的helloworld,其他地方不能做任何的改变。如果把我自己输入的引号里的句子看作是一串数据的话,那么整个程序其他部分都是标识符。可以说,整个java语言所编写的程序都是由标识符和数据组成。
标识符分为:系统预定义标识符、用户自定义标识符。
1. 系统预定义标识符又叫做关键字,不多就几十个:
abstract boolean briea byte case catch char class const continue default do double else extends assert final finally float for goto if implements import instanceof int interface strictfp package private protected public return short static super switch synchronized this throw throws transient sry void volatilre while
我英语很菜,如果有人浏览,发现写错了一定要告诉我啊
2. 用户自定义标识符
这个就有很多了,java面世到现在API文档里面超级多的东西都是用户自定义的,这么多东西又可以进行分类:类、常量、变量、方法等等。在编码时都会用到这些东西,那么在书写命名时必须有个规范,这里又有两个分类:
a. 硬性规范
java严格区分大小写,也就是说a和A是完全不同的;数字不能作为命名的开头;不能使用关键字为自定义标识符命名,因为关键字已经有了固定的含义了。否则就会无法通过编译。
b.行业规范
也就是行规,所有的java程序员都会遵守的规则,以便于传播。类名,每个单词首字母大写;变量名,第一个单词是全小写的,如果是由多个单词组成后面的单词需要首字母大写;常量名,要全大写,如果是由多个单词组成全大写的同时每个单词用下划线分隔;方法名跟变量名命名规则一样,单词的最后选用动词。
以上a、b两个命名规则必须同时遵守。
二、基础数据类型
数据类型的作用有两个:
1. 告诉计算机分配多大的内存空间给相应的数据类型。
2. 告诉计算机通过怎样的形式来表达相应的数据类型。
数据类型分为基本数据类型和复杂数据类型。前者呢,是java最初就定义完成的;后者则是前辈们使用基础数据类型组合成的,其功能非常繁复而强大。所以作为基石,基本数据类型还是非常重要的。
基本数据类型分为四种八类:
1.整型
a.byte
byte是最小的整型,只能存放1个字节,又叫字节型。说到字节,顺便在这里对它做一个补充,计算机最小的储存单位应该是“位”英文名叫bit,它只能存放一个二进制的数(0或1),一个字节是8位,也就是所最大储存数为11111111换算成十进制就是255。byte不可能只存正数啊,所以虽然有8个位,但是取值范围上限却不是255,是-2的7次方到2的7次方-1。
b. short
short可以存放2个字节的整数,又叫短整形。其取值范围是-2的15次方到2的15次方-1。
c.int
int可以存放4个字节的整数,又叫整形。其取值范围是-2的31次方到2的31次方-1。int是最常用的整形,在使用整数常量时如果不声明则计算机默认其类型为int。
d. long
long是最大的整型可以存放8个字节的整数,又叫做长整型。其取值范围是-2的63次方到2的63次方-1。长整型的常量必须以L结尾。
2. 浮点型
a. float
所谓浮点型就是用来存放小数的,涉及到小数就存在精度的问题,float的大小是4个字节,又叫单精度型,可以精确到小数点后5到6位。其取值范围是
3.4e-45~1.4e38(看不懂,抄的)。计算机默认所有的小数都是double型,所以在使用float声明常量或变量时,在赋值时要在数字后面加上f或者F。
b.double
double的大小是8个字节,又叫做双精度型。它可以精确到小数点后12到13位。其取值范围是4.9e-324~1.8e308(也是抄的)。
3. 字符型
char
字符型只有一种数据类型,char,它的大小是2个字节,用于存放单个字符。例:'a'、'中',例中这些字符叫做Unicode码。计算机只能存放二进制数,所以字符是以转变为数字编码(ASCII码)的形式储存。值得一提的是:'A'的ASCII码是65,其他大写字母以此类推,'a'的ASCII码是97其他小写字母以此类推,大写与小写之间向隔32;转义字符:键盘上有些键是无法直接用字符表示的这里就需要转义,如:回车的转义字符就是'\n'或者'\r';Tab键'\t';\本身是'\\'。在计算机眼中char其实也是数字,所以能够进行数学运算。
4. 布尔型
boolean
布尔型也只有一种数据类型,boolean,它的大小是不确定的,由JVM确定。boolean不同于其他基本类型只存放两个常量true和false,用于逻辑判断。
三、运算符
如果说数据类型是java对数据的表达,那么运算符就是对数据进行操作。
1. 赋值
= ,等于符号在java里没有比较相等的意思,而是把等号右边的结果赋值给等号左边。如:a = 1;就是把1的值赋给a。
2. 算术运算符
+、-、*、/、%(求余)。当算术运算符与=相遇时,就变成了+=、-=、*=、/=、%=,如:a += 1;意思是a = a +1;比较特别的是++、--,代表的是自身+1或者自身-1,当自增/自减位于变量前面时,如果变量在表达式中那么变量将会先做自增/自减;反之,当自增/自减位于变量后面时,如果变量在表达式中那么变量将会先参与表达式,然后在做自增/自减。
3. 比较运算符
==(等于)、!=、>、=、<=,他们的比较结果只有两种:true/false。
4. 逻辑运算符
a. 逻辑与
&、&&。如a&b、a&&b,意思是a和b同时为真的时候结果才为真。&与&&的区别是,当a被判断为假时如果使用的是&&那么这句代码执行完毕,b没有执行机会,所以&&又叫短路与,反之使用&时不管a是真是假b都会执行。
b. 逻辑或
|、||。如a|b、a||b,意思是a和b其中只要有一个是真那么结果就为真。|与||的区别是,当a被判断为真时,如果此时使用的是||那么这句话执行完毕,b没有执行机会,所以||又叫做短路或,反之使用|时不管a是真是假b都会执行。
c. 逻辑非
!,!属于单目运算符只需要把!放在需要判定的单个表达式前面就行,效果是把true改成false、把false改成true。
d. 异或
^,如:a^b,如果a与b相同,那么结果为false;如果a与b不同,那么结果为true。任何数字异或它本身其结果为0;任何数字异或0其结果是它本身。
4. 位运算符
顾名思义,这里的位就是bit,位运算就是二进制的运算。位运算符在java中几乎是不使用的,但是有这个东西还是需要了解。
<
>>是右移符号,具体参考左移符号,就是移动多少位把原来的数除以2的多少次方。当然,移出了范围就丢失掉了。
&、|这两个符号也可以做位运算,叫位与位或。~叫位反。
5. 三目运算符
? : ,如:a ? b : c,意思是a必须为布尔型的表达式,对a做出判定,如果a为true那么执行b语句,如果a为false那么执行c语句。
这里对数据类型进行运算做一点补充,java中当数据类型执行数学表达式运算时,有如下提升规则:
1. 所有的byte、short、char一旦参与运算就会被提升为int类型;
2. 如果表达式中有一个操作数是long,计算结果也是long类型的;
3. 如果表达式中有一个操作数是float,计算结果也是float类型的;
4. 如果表达式中有一个操作数是double,计算结果也是double类型的;
这里的1到4并不违背,是依次判断的:byte < short 、 char < int < lang < float < double这叫向上转型,是计算机自动执行的
我们也可以执行向下转型,但是由于是大的空间转到小的空间数据精度有被破坏或者损失的风险,计算机不会自动执行,所以向下转型必须强制执行,叫做强制转换:只需在需要转型的数据前面加上(想要转换的类型)即可。
类型转换一般都是变量的转换,这里简单说一下变量和常量:
1. 变量
变量使用前需要声明类型,然后命名变量名,然后初始化。之所以要初始化是因为你声明的这块内存空间在你没有使用的情况下储存是的上一次使用这个空间的程序的数据(这个空间是不是空的?答案是不确定)。
2.常量
常量分为:字面常量和符号常量。
a. 字面常量,比如:数字,true。
b. 符号常量,需要声明,关键字final作为常量的修饰符,finla 数据类型 常量名 = xxx;符号常量必须在声明时立刻赋值,且无法更改。符号常量有两个好处:第一,在多处使用常量时,直接用符号代替,方便。第二,把业务含义带入常量值。重点是第二个好处。
四、注释
注释是为了方便我们自己阅读穿插进代码中的,计算机不会对其做出反应。注释分为单行注释、多行注释和文本注释。其中文本注释可以生成dos文档。
单行注释://
多行注释:/*
注释内容
*/
文本注释:/**
注释内容
*/