【Java自学】搬砖中年人代码自学之路Lesson 2


        Java自学第二课,讲真学起来已经有点崩溃了,出现了茫茫多的概念和茫茫多的新名词,感觉好像回到了高中时期,需要记忆大量的知识点,胡乱的记了一些笔记,也不知道Java学习是不是应该这么学,其实还是挺心虚的

        不知道这些名词在后面会用到多少,如果需要经常用到的话,那我感觉我记下来还真是挺有必要的,毕竟已经明显该觉到了记忆力不如以前了,好多时候前面老师刚讲到东西,后面自己就忘了。。。。。

        不过其实还挺有意思的,我觉得这种感觉有意思更多的是来自于对未来自己噼里啪啦敲代码的憧憬,一直都觉得程序员都贼神奇,用一对英文和符号就能编写出各种各样的程序,想起自己以前每一次学会新的Excel公式的用法的时候都会觉得特别兴奋,估计后面自己真的学会敲代码了应该会更开心


一、关键字(keyword):

        1、定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词)

        2、特点关键字中所有的字母都为小写

                1、用于定义数据类型的关键字:

                        1、class

                        2、interface

                        3、enum

                        4、byte

                        5、short

                        6、int

                        7、long

                        8、float

                        9、double

                        10、char

                        11、boolean

                        12、void

                2、用于定义流程控制的关键字

                        1、if

                        2、else

                        3、switch

                        4、case

                        5、default

                        6、while

                        7、do

                        8、for

                        9、break

                        10、continue

                        11、return

                3、用于定义访问权限修饰符的关键字

                        1、private

                        2、protected

                        3、public

                4、用于定义类,函数,变量修饰符的关键字

                        1、abstract

                        2、final

                        3、static

                        4、synchronized

                5、用于定义类与类之间关系的关键字

                        1、extends

                        2、implements

                6、用于定义建立实例及引用实例,判断实例的关键字

                        1、new

                        2、this

                        3、super

                        4、instance

                7、用于异常处理的关键字

                        1、try

                        2、catch

                        3、finally

                        4、throw       

                        5、throws

                8、用于包的关键字

                        1、package

                        2、import

                9、其他修饰符关键字

                        1、native

                        2、strictfp

                        3、transient

                        4、volatile

                        5、assert

                10、用于定义数据类型值的字面值(严格意义上不算关键字,但是比较特殊,可以用作关键词使用)

                        1、true

                        2、false

                        3、null

二、保留字(reserved word):现有版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字

        1、goto:其他语言中为「跳转到……」的意思

        2、const:其他语言中为「定义常量」的意思

三、标识符(identifier)

        1、Java对各种变量、方法等要素命名时使用的字符序列称为标识符

        2、技巧:凡是自己可以起名字的地方都叫标识符

        3、定义合法标识符规则:如果不遵守规则,编译不通过。需要严格遵守➡️「法律问题」

                1、由26个英文字母大小写,0-9,_或$组成

                2、数字不可以开头

                3、不可以使用关键字和保留字,但能包含关键字和保留字

                4、Java中严格区分大小写,长度无限制

                5、标识符不能包含空格

        4、Java中的名称命名规范(其实不完全遵守也能够通过编译,但是建议遵守)➡️「道德问题」

                1、包名:多单词组成时所有字母都小写:例如xxxyyyzzz

                2、类名、接口名:多单词组成时,所有单词的首字母大写:例如XxxYyyZzz

                3、变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个字母首字母大写:例如xxxYyyZzz

                4、常量名:所有字母都大写,多单词时每个单词用下划线连接:例如XXX_YYY_ZZZ

                5、注意1:起名字时,为了提高阅读性,要尽量有意义,“见名知意”

                6、注意1:起名字时,为了提高阅读性,要尽量有意义,“见名知意”

四、变量

        1、变量的概念:

                1、内存中的一个存储区域

                2、该区域的数据可以在同一类型范围内不断变化

                3、变量上程序中最基本的储存单元,包含:变量类型、变量名和储存的值

        2、变量的作用:用于在内存中保存数据

        3、使用变量注意:

                1、Java中每个变量必须先声明,后使用(不按照这个操作,编译就不能通过,不声明或者不赋值都不行)

                2、使用变量名来访问这块区域的数据

                3、变量的作用域:其定义所在的一对{}内

                4、变量只有在其作用域内有效

                5、同一个作用域内,不能定义重名的变量

        4、变量的分类:对于每一种数据都定义类明确的具体数据类型(强类型语言),在内存分配了不同大小的内存空间

                1、基本数据类型(primitive type):8种

                        1、数值型:

                                1、整数类型

                                        1、byte:1字节=8bit位,表数范围:-128 ~ 127

                                        2、short:「2字节,表数范围:-2^15 ~ 2^15-1

                                        3、int:4字节,表数范围:-2^31 ~ 2^31-1(约21亿)

                                        4、long:8字节,表数范围:-2^63 ~ 2^63-1

                                        5、Java各整数类型有固定的表数范围和字段长度,不受具体os的影响,以保证Java程序的可移植性

                                        6、Java的整数型常量默认为int型,声明long型常量须后加“l”或“L”

                                        7、Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long

                                2、浮点类型

                                        1、float:

                                                1、单精度,位数可以精确到7位有效数字,很多情况下,精度很难满足需求

                                                2、占用储存空间:4字节,表数范围-3.403E38 ~ 3.403E38

                                        2、double:

                                                1、双精度,精度数float的两倍,通常采用此类型

                                                2、占用储存空间:8字节,表数范围-1.798E308 ~ 1.798E308

                                        3、与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响

                                        4、浮点型常量有两种表示形式:

                                                1、十进制数形式,如:5.12、512.0f、.512(必须有小数点)

                                                2、科学技术法形式,如5.12e2、512E2、100E-2

                                        5、Java的浮点型常量默认为double类型,声明float型常量,必须后加“f”或“F”

                        2、字符型(char「1个字符 = 2个字节,」)

                                1、char型数据用来表示通常意义上“字符”(2字节)

                                2、Java中的所有字符都适用unicode编码,故一个字符可以储存一个字母,一个汉字,或其他书面语的一个字符

                                3、字符型变量的三种表现形式:

                                        1、字符常量时用单引号('')括起来的单个字符,例如:char c1 = ‘a’、char c2 = ‘中’、char c3 = ‘g'

                                        2、Java中还允许使用转义字符“\”来将其后的字符转变为特殊字符型变量,例如:char c3 = ‘\n’

                                                1、\n表示换行符

                                                2、\b表示退格符

                                                3、\r表示回车符

                                                4、\t表示制表符

                                                5、\"表示双引号

                                                6、\'表示单引号

                                                7、\\表示反斜线

                                        3、直接使用unicode值来表示字符型常量,’\uXXXX’。其中,XXXX代表一个十六进制整数,例如:\u000a表示\n

                                        4、char类型时可以进行运算的。因为它都对应有unicode码

                                        5、char型的''通常里面不能为空

                                        6、char c1 = 97;开发中虽然非常少见,但是编译也能通过,因为本质是ASCII码

                        3、布尔型(boolean):

                                1、只能取两个值之一:true、false

                                2、常常在条件判断、循环结构中使用

                        4、基本数据类型之间的运算规则:(boolean因为取值特别,所以不参与运算)

                                1、自动类型提升:

                                        1、byte、char、short➡️int➡️long➡️float➡️double,当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的类型

                                        2、此时的容量大小指的是,表示的数的范围的大和小,比如:float容量要大于long的容量

                                        3、特殊:当byte、char、short三种类型的变量做运算时,结果为int类型。(也包含byte和byte、char和char、short和short)。因为三者之间的运算很容易就超范围了,所以固定要求使用int类型

                                2、强制类型转换:自动类型提升的逆运算

                                        1、需要使用强转符:()

                                        2、可能导致精度损失,例如:double转为int、long转为short

                        5、编码特殊情况:

                                1、long类型变量编码过程中可能会在结尾忘记加”l”或”L”,会默认为int类型的变量。只要赋值不超过int类型的表数范围,编译不会报错,否则报错

                                2、float类型的变量编码过程可能会在结尾忘记加”f”或“F”,编译一定报错

                                3、对于整型常量,默认类型为int型

                                4、对于浮点型常量,默认类型为double型

                2、字符串类型:String

                        1、String不是基本数据类型,而属于引用数据类型翻译为:字符串

                        2、声明String类型变量时,使用一对"",只要不超过内存空间(其实不会超过),""内的内容长度无限制

                        3、使用方式与基本数据类型一致。例如:String str = ‘abcd';

                        4、一个字符串可以串接另外一个字符串,也可以直接串接其他8种类型的数据做运算,且运算只能是连接运算,符号是+,例如:

                                1、str = str +"xyz";

                                2、Int n = 100;   str = str + n

                        5、String如果和其他8种数据类型做运算,运算的结果仍然是String类型

                3、引用数据类型(reference type):3种

                        1、类(class)⬅️字符串在这里

                        2、接口(interface)

                        3、数组([ ])array

        5、进制与进制间的转换

                1、进制:所有数字在计算机底层都以二进制形式存在

                        1、对于整数,有4种表示方式:

                                1、二进制(binary):0,1,满2进1,以0b或0B开头

                                2、十进制(decimal):0-9,满10进1

                                3、八进制(octal):0-7,满8进1,以数字0开头表示

                                4、十六进制(hex):0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写,如:0x21AF + 1 = 0X21B0

                        2、二进制和十进制的相互转化:

                                1、二进制的整数有以下三种形式

                                        1、原码:直接将一个数换成二进制数,最高位是符号位。正数的三码相同

                                        2、负数的反码:是对原码按位取反,只是最高位(符号位)确定为1

                                        3、负数的补码:其反码+1 

                                2、最高位是符号位:0代表正数,1代表负数

                                3、计算机的底层都以补码的方式来存储数据——正负数都一样(但整数的三码相同)

                                4、十进制转化为二进制:除2取余的逆

                        3、进制的基本转换:

                                1、十进制与二进制互相转换:

                                        1、二进制转化为十进制:乘以2的幂数相加

                                        2、十进制转化为二进制:除以2的余数取逆

                                2、二进制与八进制互相转换:

                                

                                 3、二进制与十六进制互相转换:

       

                                4、十进制与八进制互相转换:利用二进制中介

                                5、十进制与十六进制互相转换:利用二进制中介                                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值