文章目录
- Java基本语法
- 一、关键字和保留字
- 二、标识符
- 三、变量
- 1、变量的定义和使用
- 2、变量的类型
- 2.1、整型
- 2.2、浮点型
- 2.3、字符型
- 2.4、布尔型
- 3、基本数据类型之间的转换
- 3.1、自动类型提升
- 3.2、强制类型转换
- 4、原码反码补码
- 四、运算符
- 五、流程控制
- 1、分支结构
- 2、循环结构
- 补充1:求取范围 [a,b] 的随机数
- 补充2:Scanner类的使用
- 补充3:测试运行时间——System.currentTimeMillis()
应用程序 = 算法 + 数据结构
Java基本语法
一、关键字和保留字
被 Java 语言赋予了特殊意义的字符串
二、标识符
总之,凡是自己可以起名字的地方,都叫标识符(类名、变量名、方法名…)
标识符的命名规则(即,起名有要求): 比如,不能只用关键字和保留字、不能数字开头、不能含有空格、严格区分大小写
标识符的命名规范(如,驼峰命名法):
- 包名:多单词组成时,所有字母均为小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词首字母大写:XyyYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,后续单词首字母大写:xxxYyyZzz
- 常量名:多单词组成时,所有字母均大写,单词间用下划线分隔:XXX_YYY_ZZZ
【起名尽量做到 “见名知意” 】
小技巧:
三、变量
变量是内存中的一块存储区域,我们可以通过变量名来访问这块内存
1、变量的定义和使用
注意点:
- 变量必须先声明,然后才能使用【否则,在声明以前,变量根本还没有出现过,使用的时候会找不到该变量(程序不认识这个变量),编译错误】;
- 变量必须先初始化(赋值),然后才能使用【否则没有值,程序也无法使用,编译错误】;
【Java 是强类型语言;对应的还有弱类型语言,比如 JavaScript】
- 变量的作用域: 变量是有作用域的(一对大括号 “{}” 内),在作用域内,该变量是有效的,出了作用域就失效了;
【遇到一个问题,不知道他可不可以的时候,可以使用 “反证法”(逆向思维) ——> 假设他可行,然后看看会出现什么问题;如果没问题,说明可以】
2、变量的类型
按照数据类型分类:
- 基本数据类型(8种): 整型(byte / short / int / long)、浮点型(float / double)、字符型(char)、布尔型(boolean)
- 引用数据类型: 类(class)【字符串属于类】、接口(interface)、数组(array)
java基础的语法大全2.1、整型
-215 ~ 215 - 1
-231 ~ 231 - 1(约21亿)
-263 ~ 263 - 1
/div>
p>【通常使用 int 型(Java整型数值默认也是 int 型)】
/p>
/h4>
/colgroup>
tbody>
/tbody>
pre class="language-plain">
/pre>
pre class="language-plain">
/pre>
li>转义字符:使用 “”,比如想输出的就是 “
”,而不是想作为“换行符”,就使用 “
”
/li>
li>【Java默认使用的是Unicode编码(UTF-8是Unicode字符集的具体实现方式,目前实用范围最广)】——> 因此会出现“乱码”问题,因为cmd命令行默认是GBK编码
/li>
strong>0并不表示false,非0也并不表示true
/strong>】
li>当 “容量小” 的数据类型
与“容量大” 的数据类型
做运算时,结果
自动提升容量大的数据类型
byte、short、char —> int —> long —> float —> double
/li>
li>
注意:byte、short、char 三者做运算时,结果为 int 型(无论是两两类型、还是自己类型间)【可能是因为这三者表数范围太小,做运算时很容易超过其表数范围,造成运行错误】
/li>
li>转换时,是进行
截断操作,不进行四舍五入(毫无疑问,可能会导致精度损失)
/li>
li>还有可能超过表数范围
/li>
img src='https://s2.51cto.com/images/blog//_6472f7cd.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184' alt='java基本语法大全(全) java语言基本语法_Java_02' title="在这里插入图片描述" style="visibility: visible; width: 796px;">
li>【正数:三码合一】【给补码,要会算原码】
/li>
li>
为什么使用补码?计算机只能进行加法运算,因此通过补码的方式,将减法运算转换为加法运算【比如:3 - 2,计算机实际上是做了 3 + (-2) 的操作,通过补码的机制,完成了做加法时能达到
“正负冲减”效果】
/li>
li>取余运算(%):被模数、模数可以取负,
结果的符号和被模数的符号一致【开发中常使用 “%” 来判断能否被除尽的问题】
/li>
li>自增(++)、自减( --)、扩展赋值运算符(+=、%=…):
不改变变量本身的数据类型【例如:short += 2; 正确,但 short = short + 2; 编译错误】
/li>
li>比较运算符:运算的结果,都是boolean类型(即,只有true、false);
注意区分 == 和 =/li>
li>逻辑运算符:只适用于boolean类型变量的运算;异或运算:当 a 和 b 不同时,是true,相同时是false(即所谓的 “异”)
/li>
li>
| 和 || ,& 和 && 的区别:a | b,无论第一个操作数 a 是不是 true,b 都要判断;a & b,无论 a 是不是 false,b 都要判断【理论上讲,当 a 为 true 时,就可以判断出必有 a | b = ture;同理,当 a 为 false 时,必有 a & b = false,因此没必要去看操作数 b,即所谓的
“短路”】【
当 b 是表达式的时候,就会出现差异,(开发时优先选择 “短路运算”)】
/li>
li>位运算符:注意,
没有 “<<<”,(只有 <<,>>,">>>" 无符号右移);位运算符操作的都是整型变量;左移——是底层
“二进制数的各位往左移”,高位超了就砍掉,低位空了补零(右移,高位补符号位,低位超了砍掉);【每向左移一位,相当于 * 2(除非移动过大,最高位变成 1 了,负数了)】
【位运算符的测试:交换两个变量的值】
/li>
pre class="language-plain">
/pre>
pre class="language-plain">
/pre>
li>三元运算符:能用三元运算符的地方,都可以改写成 if-else 流程控制,但是反之不行【
二者皆可的时候,使用三元运算符,因为效率高】
/li>
li>if-else
/li>
li>switch-case
注意:switch(表达式) {case…} 中的 “表达式” 不是条件表达式,而且只能是如下6种数据类型之一:byte、short、char、int、枚举类型、String类型
【浮点型、布尔型不能放!!!String 是 JDK7.0 以后新增的】
/li>
li>for
/li>
li>while:
【千万别丢了④迭代部分!!!!会死循环!!!】/li>
li>do-while
/li>
pre class="language-plain">
/pre>
pre class="language-plain">
/pre>
strong>1970-01-01 00:00:00
/strong> 的毫秒数】
pre class="language-plain">
/pre>
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/18956.html