首页 / JAVA / java语法基础学习day two
java语法基础学习day two
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java语法基础学习day two,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6449字,纯文字阅读大概需要10分钟。
内容图文
java语法基础02
- java语法格式
- main方法的作用:它是程序的入口,程序就是从主函数开始的,且main方法中的各个属性不能被改变。
- java语言分隔符
;(分号):被用于语句之间的分隔
{}(花括号):被花括号括起的代码表示为一个代码块,是一个整体,花括号要一起使用
[](方括号):主要用于定义数组及访问数组时使用
()(圆括号):使用很广泛
.(圆点):一个类的对象访问它的方法或属性时使用
空格:分隔一条语句中的不同部分
- 注释的用法
注释:为了提高代码的可阅读性。
注释的分类:
单行注释://注释内容
多行注释:/*注释内容*/
文本注释:/** 文本内容*/,可以生成程序说明书;java特有注释;
- 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
- 字符型(char)
char占2字节,的范围是[0,65535],但是前256个表示特殊字符;字符常量为用单引号引起来的单个字符。
例如:char c = 'A'; char c2 = '传'; char c3=97;
- 数据类型
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’
- 浮点类型
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;
- String类型
String不属于基本数据类型,它属于引用数据类型,但和字符有一定的联系。String是一个类,表示字符串(后面详讲); 就是一串字符,也就是多个字符连接在一起;字符串都得使用 "" 括起来的;连接字符串使用 +
- 转义字符
用途:有部分符号在Java有特殊含义,当需要使用符号自身原有的意思时,这时可以通过转义字符表示。
例如:(1)键盘上的制表符tab键。可以使用 ‘\t’表示。
(2)双引号,在Java中使用双引号表示字符串,若想使用双引号本身含义,即可使用’\”’表示
- 字符编码表
从前面的介绍知道计算机中所有数据都是采用二进制表示的,怎么才能把生活中的这些字符转成二进制表示呢?
为了解决这个问题,专门制作了一张码表
例如:
‘A’-----> 65
‘B’----->66
‘a’------>97
‘b’------>97
...........
所以当把一个整型数据赋值给char类型数据时,计算机会查码表中这个整数所对应的字符是什么,然后将这个字符存放在char类型的空间中
char ch = 65 其实是将A存放在ch中
- 数据类型转换
- 隐式类型转换
当在存储整数数据时,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不会自动提升。
- 强制类型转换
容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度的降低或溢出,使用时要格外注意
浮点数据默认类型是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
内容总结
以上是互联网集市为您收集整理的java语法基础学习day two全部内容,希望文章能够帮你解决java语法基础学习day two所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。