2 注释,变量,数据类型,运算符

1注释、关键字、标识符

注释

给程序函数做注释方便理解,不影响程序运行

单行注释//

多行注释/*内容*/

文档注释/**文档*/     (生成文档使用,先不讲)

注释写中文前,先设置notepad++为ANSI编码,防止乱码

1

我们可以看见多行注释和单行注释的效果,颜色都变成绿色,看注释是否为多行或者单行来区别使用

关键字

关键字是java程序预设好有特殊意义的单词,如public,class,static,void,在图1notepad++里显示紫色,我们设置变量或者类名不能与其重复

2

关键字很多,学到哪里记到哪里

标识符

类名,变量名都可以成为标识符

类名和变量名可以由A-Z,a-z,0-9以及美元$、下划线组成,其中数字不可以开头,命名不能与关键字重复

一般类名首字母大写(几个单词拼接的,几个单词首字母大写)

方法名首字母小写,后面的单词首字母大写

这种命名法为驼峰命名,为了方面快速理解功能

2 数据(常量和变量)

数据是计算机程序拿来处理或者依据处理的对象,分为2类:

基本数据类型:整数,小数,字符,布尔

引用数据类型:数组,类,接口

常量

针对于变量,不变的数据称为常量

整数,又分为十进制,二进制,十六进制,八进制等等

小数,又称为浮点数

布尔,true,false,就2种

字符,单引号''包括起来,而且只能包括一个字符,可以是数字,字符(可以为汉字)

字符串,双引号""包裹起来,可以包括0到n个字符(包括数字汉字)

我们尝试写Demo1来输出常量

3

我们可以看到下图的结果,其中二进制和16进制都被转换成了10进制打印

4

我们输出字符串常量和bool

5
6

变量

相对于常量,会变化的数据称为变量,程序运行时,变量存储于内存中

内存简介

内存非永久存储,断电清空(相对于硬盘等永久存储设备),一个数据最小的数据为1个B=8bit,虽然可能布尔型0,1只用1个bit好像就能表示,但是也是用一个B来表示

变量基本类型(4类8种)

我们内存设定变量类型和大小觉得占据空间,具体如下图

7

整形:4种byte,short,int,long 分别占据1,2,4,8字节(上图中的表示范围为有符号情况)

浮点型:float,double分别占4,8字节(double精度高)

字符型:char 2字节

布尔:boolean 1字节

整形和浮点型选用哪种子类型根据实际使用范围,如果不特殊考虑范围,一般使用int,double

类型说明

100是常量,而且在byte范围内,但是我们认为其为int类型,除非我们提前指定了byte类型,

整数在java里没有指定类型,则默认为int,如果我们写一个大于int存储长度的数值则会报错提示溢出

如果我们指定数据类型为long,则需要加上L,如100L,231121312341L

浮点型java没特殊指定默认是double(可以结尾加D),如果需要指定float,需要结尾加上F,如3.14F,-1.234F

变量创建

变量三要素,类型,变量名,数值

如我们定义int类型,会给内存开辟4字节空间,但是我们需要知道存在哪里,通过变量名指定位置,数值是这个区域存储的数值,变量名还必须符合我们之前说的命名规则

8

这个demo尝试写定义几个变量,并去显示,这里注意long,float结尾需要加上L,F如果没写,大数long会报错,因为int只能表示到214746847,超过提示溢出,F没有写,会提示损失精度,因为默认是按double类型的小数

字符串变量

字符串变量是引用类型变量,不是之前讲的基本变量类型,我们定义字符串变量如下,String s = "xxx";注意是双引号结尾,还有我们需要习惯结束位置有双引号

9

变量定义的注意事项

1变量定义不赋值不能使用,否则会编译报错提示未初始化

我们可以先定义,用前初始化,但是建议最好开始定义赋值一起

2变量有作用域限制

作用范围在其定义的大括号内,且在定义之后

10

如上图的j定义只在{}包裹的区域内,但是下面尝试打印会报错,找不到符号

3变量重复定义

如下图我们定义了2次i,报错提示重复定义

11

变量类型转换

数据类型范围小的可以直接转为范围大的。

允许转换byte->short->int->long->float->double

类型自动转换

数据范围小的自动转换为范围大的

12

如上图,我们d赋值,右侧为int,左侧为范围大的double,赋值进行自动转换,我们打印可以看见结果是1000.0

强制类型转换

数据范围大的变成数据范围小的,需要手动指定转换,否则报错

这里有个公式实现转换

转换后类型  变量名 = (转换后类型) 被转换数据;

13

如上图,代码实现浮点型转换成整形(砍掉小数部分)

14

又如上图,我们给200强转给b,此时打印b结果是-56,不是200,这其实是数据溢出了,200-128=72

72的2进制1001000,首位1表示赋值,补码0110111+1=56

总结:强制转换没有具体需求不要做,容易丢失数据

3 运算符

算术运算符

15

+加法,连接符(遇到字字符串),正号(一般不写)

-减法,负号

*乘/除

%取模(得余数)

++自增,--自减,放在左右有区别,放在右,则是执行当前式子,再自增减,放在左则是先增减,在执行,符合从左到右的顺序

16

我们尝试打印加减乘除区域和拼接效果,其中除法因为2者都是整数所以默认得到的结果还是整数

拼接"123"遇到6就将结果拼接成字符串,后面同理,

5+5+"123"+5="101235",这里5+5因为都是整数可以加,遇到字符串再拼接

所以常用数字转字符串+""  (用空字符串拼接)

赋值运算符

17

=和+=,-=,*=,/=,%=几个,和python一样,且需要注意的是不能符号分开!!

18

这里需要注意的是,如果我们如上图操作,而不是使用a+=1,会报错,这是因为a为1字节,a+1会变成4字节

19

而我们使用a+=1不会报错,和使用强制转换一样效果,其实这是文档告诉我们的,默认就进行了强制转换

比较运算符

20

如图,运算式结果返回bool值

逻辑运算符

21

与或非& && |  ||  !  异或^,其中2个&&,||为短路与或,即有分别与逻辑遇到false和或逻辑遇到true就不再往下进行计算

22

demo如上

三元运算符

布尔表达式?结果1:结果2(满足返回结果1,否则结果2)

23
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,500评论 0 5
  • 1. 关键字 1.1 关键字概述 被Java语言赋予特定含义的单词 1.2 关键字特点 组成关键字的字母全部小写 ...
    JackChen1024阅读 631评论 0 2
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 687评论 0 0
  • Java基础面试 Java基础面试... 1 1. Java基础知识... 5 1.1. Java源程序的扩展名是...
    来着何人阅读 1,213评论 0 1
  • 第二课程 java 的基础语法的基础 1.关键字都是小写,会变为蓝色 2.标志符: 标志符就是给类,接口,方法,变...
    浓茶馆阅读 784评论 0 0