java基础学习_基础语法(上)01_day02总结

=============================================================================

=============================================================================

涉及到的知识点有:   1:关键字(掌握)   2:标识符(掌握)   3:注释(掌握)   4:常量(掌握)   5:进制转换(了解)   6:变量(掌握)   7:数据类型(掌握)   8:数据类型转换(掌握)

============================================================================= ============================================================================= 1:关键字(掌握) (1)被Java语言赋予特定含义的单词。 (2)特点:     组成关键字的字母全部小写。 (3)注意事项:     A:goto和const作为保留字存在,目前并不使用。注意:保留字在jdk的新版本中可能会提升为关键字。     B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记。

示例代码如下:

 1 /*
 2     关键字:被java语言赋予特定含义的单词。
 3     
 4     特点:组成关键字单词的字母全部小写。
 5     
 6     注意:
 7         A:goto和const是保留字,目前并不使用。注意:保留字在jdk的新版本中可能会提升为关键字。
 8         B:类似于UE、Notepad++这样的高级记事本,针对关键字都有特殊的颜色标记。
 9 */
10 class KeyWordDemo {
11     public static void main(String[] args) {
12         System.out.println("HelloWorld");
13     }
14 }

java中用到的关键字如下图所示:(50个左右)

----------------------------------------------------------------------------- 2:标识符(掌握) (1)就是给类、接口、方法、变量等起名字的字符序列。 (2)组成规则:     A:可由英文大小写字母组成;     B:可由数字组成;     C:可由$和_组成;     D:可由中文组成,但是不建议用中文! (3)注意事项:     A:不能以数字开头;     B:不能是java中的关键字;     C:java语言严格区分大小写。 (4)开发的常见的命名规则(见名知意) A:包的命名(全部小写),其实就是文件夹,用于把相同的类名进行区分。       单级包:小写。         举例:liuyi   com       多级包:小写,用.隔开。         举例:cn.itcast   com.baidu  (习惯是域名反写) B:类或者接口的命名       一个单词:单词的首字母大写。         举例:Student,Demo       多个单词:每个单词首字母大写。         举例:HelloWorld,StudentName C:方法或者变量的命名       一个单词:单词的首字母小写。         举例:name,main       多个单词:从第二个单词开始,每个单词首字母大写。         举例:studentAge,showAllNames() D:常量的命名       全部大写       一个单词:大写         举例:PI       多个单词:大写,并用_隔开。         举例:STUDENT_MAX_AGE ----------------------------------------------------------------------------- 3:注释(掌握) (1)就是对程序进行解释说明的文字,不会被JVM解释执行。 (2)分类: A:单行注释://注释文字            单行注释可以嵌套使用。 B:多行注释:/*注释文字*/         多行注释不可以嵌套使用。 C:文档注释(后面讲):/**注释文字.*/   被javadoc工具解析生成一个说明书,面向对象部分讲解。 (3)把HelloWorld案例写了一个带注释的版本。     后面我们要写一个程序的过程。 需求:写一个程序,在控制台输出HelloWorld。 分析:   1:写一个java程序,首先定义类。           2:程序要想能够被jvm调用,必须定义main方法。           3:程序要想有输出结果,必须用输出语句。 实现:   1:定义类用的是class关键字,后面跟的是类名。           2:main方法的基本格式。           3:输出语句的基本格式。 代码体现: (4)注释的作用:     A:解释说明程序,提高了代码的阅读性。     B:可以帮助我们调试程序。       后面我们会讲解一个更高端的一个调试工具。 ----------------------------------------------------------------------------- 4:常量(掌握) (1)在程序执行的过程中,其值不发生改变的量。 (2)Java中常量的分类:     A:字面值常量

      例如:"hello"、10、true     B:自定义常量(后面讲)

      例如:final int x = 10; (3)字面值常量     A:字符串常量  "hello"     B:整数常量   12,23     C:小数常量   12.345     D:字符常量   'a','A','0'     E:布尔常量   true、false     F:空常量       null(后面讲)(闹)  代表什么都没有

注意:空常量null不可以直接用于打印输出。 如下图所示:

(4)在Java中针对整数常量提供了四种表现形式     A:二进制 由0,1组成。以0b开头。     B:八进制 由0,1,...,7组成。以0开头。     C:十进制 由0,1,...,9组成。整数默认是十进制。     D:十六进制 由0,1,...,9,a,b,c,d,e,f(大小写均可)组成。以0x开头。 如下图所示:

----------------------------------------------------------------------------- 5:进制转换(了解)

如下图所示:

(1)其他进制转换到十进制     系数:就是每一个位上的数值。     基数:x进制的基数就是x。     权:对每一个位上的数据,从右往左,并且从0开始编号,对应的编号就是该数据的权。     结果:系数*基数^权次幂之和。 如下图所示:

(2)十进制转换到其他进制     方法:除基取余,直到商为0,余数反转。 如下图所示:

(3)进制转换的快速转换法     A:十进制和二进制间的转换 8421码。8421码是BCD代码中最常用的一种。     B:二进制到八进制,十六进制的转换 如下图所示:

(4)原码、反码、补码 如下图所示:

(5)8421码:     8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。     在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。 例如:    1   1   1   1    1    1    1   1         128   64   32   16    8     4    2     1 ----------------------------------------------------------------------------- 6:变量(掌握) (1)在程序的执行过程中,其值在某个范围内可以发生改变的量。 (2)变量的定义格式: A:数据类型 变量名 = 初始化值; B:数据类型 变量名;        变量名 = 初始化值; (3)从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域;     因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。 (4)为什么要定义变量呢? 答:用来不断的存放同一类型的常量,并可以重复使用。

如下图所示:

--------------------------------------- 使用变量的时候要注意的问题: A:作用域       变量定义在哪一级大括号中,那个大括号的范围就是这个变量的作用域。       相同的作用域中不能定义两个同名变量。 B:初始化值       没有初始化值的变量不能直接使用。       你只要在使用前给值就行,不一定非要在定义的时候就立即给值。 推荐建议:在定义的时候就给初值比较好。 C:在一行上建议只定义一个变量。       其实也可以定义多个变量,但是不建议,不好看。 ----------------------------------------------------------------------------- 7:数据类型(掌握) (1)Java语言是一种强类型语言,针对每种数据都提供了对应的数据类型。 (2)数据类型的分类: A:基本数据类型:4类8种。 B:引用数据类型:类、接口、数组、字符串、Lambda。

注意:字符串、Lambda这两种引用数据类型后面会学习到。           Lambda:兰亩达,希腊字母表中排序第十一位的字母。           大写Λ用于:粒子物理学上,Λ重子的符号。           小写λ用于:物理上的波长符号、放射学的衰变常数、线性代数中的特征值。西里尔字母的 Л 是由 Lambda 演变而成。           " λ "形似一个双手插兜儿,独自行走的人,表示"失意、无奈、孤独、低调、路过"之意的符号,最先流行于仙剑奇侠传。

如下图所示:

(3)基本数据类型 A:整数类型    占用字节数(Byte)   默认是有符号的,数据范围是:       byte       1          -2^8 ~ 2^15-1(-128 ~ 127)       short      2          -2^15 ~ 2^15-1       int       4          -2^31 ~ 2^31-1       long       8          -2^63 ~ 2^63-1 B:浮点类型       float      4          -3.403e38 ~ 3.403e38    -3.4.3*10^38 ~ 3.4.3*10^38       double       8          -1.798e308 ~ 1.798e308   -1.798*10^308 ~ 1.798*10^308 C:字符类型       char      2 D:布尔类型       boolean     1 --------------------------------------- 注意的地方:     a:整数默认是int类型,小数默认是double。     b:声明长整数要加L或者l。 例如:int i1 = 600;     //正确。        long l1 = 88888888888L;       //必须加L或l否则会出错。一般用大写的L,因为小写的l像1。     c:声明单精度的浮点数要加F或者f。 例如:double d = 12345.6;        //正确。      float f = 12.3f;          //必须加f或F否则会出错。损失精度。     d:char类型数据用来表示通常意义上的“字符”,字符常量为用单引号括起来的单个字符。 例如:char ch1= 'a'; char ch2='中';     e:Java字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。注:Unicode是全球语言统一编码。     f:boolean类型适于逻辑运算,一般用于程序流程控制。       boolean类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。     g:与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。 Java浮点类型常量有两种表示形式: 十进制数形式,    如:  3.14        314.0         科学记数法形式,如:3.14e2    3.14*10^2     h:Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。     i:所谓的有效数字:具体地说,是指在分析工作中实际能够测量到的数字。所谓能够测量到指的是包括最后一位估计的不确定的数字。 例如:对于一个近似数,从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。 ----------------------------------------------------------------------------- 8:数据类型转换(掌握) (0)一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。 (1)boolean类型不能转换为其他的数据类型。 (2)默认转换(从小到大):     A:byte,short,char --> int --> long -- float -- double。     B:byte,short,char相互之间不转换,他们参与运算时首先默认转换为int类型。 如下图所示:

(3)强制转换(从大到小):     A:可能会有精度的损失,一般不建议这样使用。     B:格式:       目标数据类型 变量名 = (目标数据类型)(被转换的数据);     C:注意:不要随意的去使用强制转换,因为它隐含了精度损失的问题。 (4)思考题和面试题:     思考题:请问下面这个有没有问题?     double d = 12.345;     float f = d;       答:有问题,可能损失精度。 A:下面两种方式有区别吗?       float f1 = (float)12.345;       float f2 = 12.345f;         答:f1其实是通过一个double类型转换过来的。         而f2本身就是一个float类型。 B:下面的程序有问题吗,如果有,在哪里呢?       byte b1 = 3;       byte b2 = 4;       byte b3 = b1 + b2;   //数据类型提升了,有问题,可能会损失精度。       byte b4 = 3 + 4;      //没问题。常量,是先把结果计算出来,然后看是否在byte的范围内,如果在就不报错! C:下面的操作结果是什么呢?       byte b = (byte)130;   //-126       我们要想知道结果是什么,就应该知道是如何进行计算的。       而我们又知道计算机中数据的运算都是补码进行的。       而要得到补码,首先要计算出数据的二进制。 a:获取130这个数据的二进制。首先130默认是有符号的int类型。         00000000 00000000 00000000 10000010         这是130的原码,也是反码,还是补码。         即在计算机内部存储的是补码:         00000000 00000000 00000000 10000010 b:做截取操作,截成byte类型的了。         10000010         这个结果是补码。         注意:电脑显示屏幕显示的是原码,且为十进制。 c:即已知补码求原码。             符号位        数值位         补码:   1         0000010         反码:   1         0000001         原码:   1         1111110         即得到输出是-126 D:字符参与运算       是查找ASCII里面的值       'a' --> 97       'A' --> 65       '0' --> 48       System.out.println('a');   //97       System.out.println('a' + 1);  //98  E:字符串参与运算 首先运算是从左到右的。       字符串数据+其他数据做,结果是字符串类型。因为这里的+不是加法运算,而是是字符串的连接符(拼接符)。       其他数据+其他数据+字符串数据,先计算其他的值后再与字符串进行拼接。       System.out.println("hello"+'a'+1);   //helloa1       System.out.println('a'+1+"hello");   //98hello       System.out.println("5+5="+5+5);   //5+5=55       System.out.println(5+5+"=5+5");   //10=5+5 =============================================================================

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jessetalks

Javascript基础回顾 之(一) 类型

  本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Jav...

38670
来自专栏用户2442861的专栏

JavaScript 正则表达式上——基本语法

JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串

7310
来自专栏CDA数据分析师

算法和数据结构—— 查找和排序

本文为简书作者郑永欣原创,CDA数据分析师已获得授权 查找和排序都是程序设计中经常用到的算法。查找相对而言较为简单,不外乎顺序查找、二分查找、哈希表查找和二叉排...

26860
来自专栏趣谈编程

Unicode与UTF-8的区别

要弄清Unicode与UTF-8的关系,我们还得从他们的来源说起,下来我们从刚开始的编码说起,直到Unicode的出现,我们就会感觉到他们之间的关系

14220
来自专栏HansBug's Lab

1798: [Ahoi2009]Seq 维护序列seq

1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec  Memory Limit: 64 MB Submit: 2930...

31350
来自专栏偏前端工程师的驿站

JS魔法堂:再识Number type

Brief                                   本来只打算理解JS中0.1 + 0.2 == 0.300000000000000...

23850
来自专栏大数据风控

R中字段抽取、字段合并、字段匹配

1、字段抽取 字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:substr(x,start,stop) tel <- '1892225...

97090
来自专栏前端儿

表达式求值(1)

Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值...

21820
来自专栏伪君子的梦呓

题解~按照特定的格式输出~C++做法

一共三行,第一行:位数 第二行: 用空格分开的每个数字,注意最后一个数字后没有空格 第三行: 按逆序输出这个数

5840
来自专栏函数式编程语言及工具

Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus

  在前面的几篇讨论里我们初步对FP有了些少了解:FP嘛,不就是F[A]吗?也是,FP就是在F[]壳子(context)内对程序的状态进行更改,也就是在F壳子(...

20570

扫码关注云+社区

领取腾讯云代金券