java语法基础学习day two

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45798731/article/details/102753433

java语法基础02

  • java语法格式
  1. main方法的作用:它是程序的入口,程序就是从主函数开始的,且main方法中的各个属性不能被改变。
  2. java语言分隔符

;(分号):被用于语句之间的分隔

{}(花括号):被花括号括起的代码表示为一个代码块,是一个整体,花括号要一起使用

[](方括号):主要用于定义数组及访问数组时使用

()(圆括号):使用很广泛

.(圆点):一个类的对象访问它的方法或属性时使用

空格:分隔一条语句中的不同部分

  1. 注释的用法

注释:为了提高代码的可阅读性。

注释的分类:

单行注释://注释内容

多行注释:/*注释内容*/

文本注释:/** 文本内容*/,可以生成程序说明书;java特有注释;

扫描二维码关注公众号,回复: 7639268 查看本文章
  • java关键字和标识符

关键字:被Java语言赋予了特定含义的字符!这些词不能用于其他地方,改变其含义。

关键词分类:

 

 

 

 

 

标识符:为了增强阅读性的自定义名称,例如:类名、方法名、变量名等等

标识符的书写规则:

1、由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等

2、标识符大小写敏感

3、标识符不得使用java中的关键字和保留字

4、别用Java API里面的类名作为自己的类名

注意:一般开发时,会用有意义的英文单词作为标识符

规范:

           (1)类名 所有单词首母大小

                YourGirlFriend

           (2)函数名,变量名 除了第一个单词外其他单词首字母大写

                money Making

                playGame

                isContinue

           (3)常量名全大写 单词之间用_分开

                MAX_VALUE

                PI

 

  • java数据类型

Java语言定义了明确具体的数据类型,并对这些数据类型在内存中分配了不一样的内存空间。

 

整数默认:int         小数默认:double

1、boolean型

boolean类型通常用于逻辑运算和程序流程控制

boolean 类型数据只允许取值true 或 false

  1. 字符型(char)

char占2字节,的范围是[0,65535],但是前256个表示特殊字符;字符常量为用单引号引起来的单个字符。

例如:char c = 'A'; char c2 = '传'; char c3=97;

 

 

 

 

  1. 数据类型

byte、short、int、long这四个关键字都可以在内存中开辟出存放整型数据的空间。

byte开辟1个字节的空间,short开辟2个字节空间,int开辟4个字节空间,long开辟8个字节空间。

以int为例:4个字节,32位,一位有两种状态分别是“0”和“1”,那么它可以存储-232~232-1(减1是因为有0)大的数据,超过了就需要用到long型了。

Java语言整型常量的四种表示形式

二进制整数,0b或0B开头,如:int a = 0B110;

十进制整数,如:int a = 17;

八进制整数,要求以0开头,如 int a = 012;

十六进制整数,要求0X或0x开头,如int a = 0x12;

 

注意:Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L’

 

 

 

  1. 浮点类型

double和float关键字在内存中开辟的空间可以存放小数。double开辟8个字节的空间,float开辟4个字节的空间。

Java浮点型常量默认是double,则要声明一个常量为float型,则需在常量后加上f 或F

例如:double pi = 3.14;//正确

float pi = 3.14F; //必须加上f,或强转 float pi3 = (float)3.14;

 

 

  1. String类型

String不属于基本数据类型,它属于引用数据类型,但和字符有一定的联系。String是一个类,表示字符串(后面详讲); 就是一串字符,也就是多个字符连接在一起;字符串都得使用 "" 括起来的;连接字符串使用 +

 

  1. 转义字符

用途:有部分符号在Java有特殊含义,当需要使用符号自身原有的意思时,这时可以通过转义字符表示。

例如:(1)键盘上的制表符tab键。可以使用 ‘\t’表示。

(2)双引号,在Java中使用双引号表示字符串,若想使用双引号本身含义,即可使用’\”’表示

 

  1. 字符编码表

从前面的介绍知道计算机中所有数据都是采用二进制表示的,怎么才能把生活中的这些字符转成二进制表示呢?

为了解决这个问题,专门制作了一张码表

例如:

‘A’-----> 65

‘B’----->66

‘a’------>97

‘b’------>97

...........

所以当把一个整型数据赋值给char类型数据时,计算机会查码表中这个整数所对应的字符是什么,然后将这个字符存放在char类型的空间中

char ch = 65 其实是将A存放在ch中

 

  • 数据类型转换
  1. 隐式类型转换

当在存储整数数据时,Java中所有的整数默认都是int类型的。所以在将-128~127之间的数据存储在byte类型空间中时,JVM会把这个int类型的数据自动转换成byte类型,然后存放在byte空间中。其它同理。

 

只有在以下几种情况才会隐式类型转换(其他都要强制转换)

byte a=2+3;

short b=240;

char c=57; //需要查找码表,找57对应的字符。

 

注:大的数据无法往小的数据类型中隐式转换,只能通过强制转换,而且可能会造成数据损失,慎用。

 

整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则

容量小的类型可自动转换为容量大的数据类型(类型自动提升)

byte,short,char → int → long → float → double

byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型

 

 

byte类型转换细节分析

 

面对这种问题,大家应该都有这样的疑惑,我全部都是byte类型的数据,而且两个相加也并没超过byte类型的表示范围,但是为什么会报错Type mismatch: cannot convert from int to byte

接下来为大家解惑:

n,m,b确实都是byte类型,但是在此代码中它们也是变量,两个变量相加有可能超过byte的表示范围,所以java就将右边相加的两个数由byte变成int型,再相加,这样右边的大的数据类型int就需要往小的数据类型byte转换,只能强制转换了。所以会报错。

大家再看一个代码:

 

这个代码当中右边直接给出数字,java就知道3+4是否会超过byte的表示范围,如果超了便会报错代码如下,不超就不会报错;

 

不超的话;由于4和3默认是int,java会将3和4通过隐式类型转换成byte类型再相加。

 

从小的byte类型可以类型自动提升成int,所以n会自动变成int型,再相加再赋值;不需要强制转换。

 

读完这片博客之后,可能有很多人会有这样的两个疑问:

1、java明明知道变量的值,为什么不能判断是否超过其表示范围呢?

答:因为,变量内容的存储是在常量池,java需要先获取变量地址,再获取变量空间里的内容(存的是变量值的地址),再通过这个地址找到变量所存储的内容;这一系列的操作是在做计算时才会去做的,所以光看一个变量是无法看出是否超过范围的,而3+4直接就可以看出来。

 

2、为什么byte由于变量未知导致无法知道是否超过其表示范围,而会自动提升到int,int面对同样的情况为什么不自动提升到long类型呢?

答:我自己的解释是,由于byte表示范围实在是太小了,一般的数学计算都会超过它,而int型基本满足了普通程序员的绝大部分的计算需求,所以int型设置为默认类型也是这样的原因。所以byte在变量的情况下会自动提升到int,而int不会自动提升。

 

  1. 强制类型转换

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度的降低或溢出,使用时要格外注意

 

浮点数据默认类型是double,所以在把3。14赋值给float类型的变量时需要强转或者加f。

  • 逻辑运算符

用途:连接boolean型表达式

& 与

| 或

^ 异或

! 非

&& 短路与

|| 短路或

 

运算规律如下:

&:两边都为true才为true,否则为false

| :两边都为false,结果是false。否则为true。

^ : 异或,两边相同为false。两边不同为true。

!:非,非真即假,非假即真

“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理双或时,左边为真,右边不参与运算

 

  • 移位运算符

位运算:主要说的是二进制数位运算

1、&   按位与运算:相同的二进制数位上两者数值都为1,则与后该位结果为1,否则结果为0;

例:12 & 5  先把12、5以二进制表示,再进行按位与运算。

十进制     二进制

12      00000000_00000000_00000000_00001100

5 00000000_00000000_00000000_00000101

猜你喜欢

转载自blog.csdn.net/weixin_45798731/article/details/102753433
two