Java基础
Java基础
注释、标识符、关键字
注释
- 书写注释是一个好习惯
- 注释不会被执行,是给写代码的人看的
Java 三种注释
// 单行注释
/* */ 多行注释
/** */ 文档注释 NB了才会用到
标识符、关键字
- Java标识符注意点
-
所有的标识符都应该以字母(A-Z或者a-z)、美元符$、或者下划线(_)开始
-
首字母之后可以是字母(A-Z或者a-z)、美元符$、或者下划线(_)或数字的任何字符组合
-
不能使用关键字作为变量名或方法名
abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if impleements import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while -
标识符是大小写敏感的
-
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音
数据类型
-
强类型语言(Java)
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言(JavaScript)
Java的数据类型分为两大类:
基本类型 【数值类型(整数类型、浮点类型、字符类型)】
【boolean类型】 占1位其值只有true和false
引用类型 【 类、接口、数组】
什么是字节
位 :是计算机 内部数据 储存的最小单位,11001100是一个八位数二进制数
字节:是计算机中 数据处理 的基本单位,习惯上用大写B来表示
1B(byte,字节)= 8bit(位)
字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位
1Byte表示一个字节 1B = 8b
1024B = 1KB
1024KB = 1M
1024M = 1G
最好完全避免使用浮点数比较
所有字符本质还是数字
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候需要用到类型转换
低--------------------------------------------------------------->高
byte、short,char--->int -->long-->float -->double
-
运算中,不同类型的数据先转化为同一类型,然后进行运算
操作比较大的数的时候,注意溢出问题
- 强制类型转换
- 自动类型转换
注意点
1. 不能对布尔值进行转换2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在益处或者精度问题
变量、常亮
-
变量是什么:就是变化的量
-
Java是强类型语言,每一个变量都必须声明其类型
-
Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域
变量作用域
数据类型 变量名 = 值; (可以使用多个逗号隔开声明多个同类型变量)
运算符
-
Java语言支持如下运算符
算术运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符
1.算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
Java 中常用的算术运算符:
其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴
a++:先赋值,后自增
++a:先自增,后赋值
自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!
2.赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
Java 支持的常用赋值运算符,如下表所示:
3.比较运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
Java 中常用的比较运算符如下表所示:
注意哦:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
4.逻辑运算符
逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:
我们可以从“投票选举”的角度理解逻辑运算符:
1、 与:要求所有人都投票同意,才能通过某议题
2、 或:只要求一个人投票同意就可以通过某议题
3、 非:某人原本投票同意,通过非运算符,可以使其投票无效
4、 异或:有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。
譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
5.条件运算符
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
例如:
因为,表达式 8>5 的值为 true ,所以,返回: 8大于5
public static void main(String[] args) { // X ? Y : Z // 如果X==true,则结果为Y,否则为Z int score = 50; String type = score > 60 ? "及格" : "不及格"; System.out.println(type); }Java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:
分析:小括号优先级最高,因此
1、 执行 a + 18 ,结果为 30
2、 执行( a + 18 ) % 4 取模,结果为 2
3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24,
转载自 https://www.cnblogs.com/dust2017/p/6309008.html------------------
包机制
用于区别类名的命名空间
包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可以完成此功能
import package1[.package2..].(classname|*);//*代表通配符 ,导入这个包下所有的类
JavaDoc
javadoc -encoding UTF-8 -charset UTF-8 Doc.java //通过命令行生成javadoc
IntelliJIDEA中如何使用JavaDoc
留存网址https://www.cnblogs.com/xiaoming0601/p/6657136.html
Scanner对象
Scanner类获取用户输入
基本语法: Scanner S = new Scanner(System.in);
顺序结构
Java的基本结构就是顺序结构,除非特别指明
顺序结构是最基本的算法结构
它是任何一个算法都离不开的一种基本算法结构
选择结构
if单选择结构
if(布尔表达式){
//如果布尔表达式是true 就执行操作
}
if双向选择结构
if(布尔表达式){
//如果布尔表达式是true 就执行操作
}else{
//如果布尔表达式是false就执行操作
}
if多选择结构
if(布尔表达式){
//如果布尔表达式是true 就执行操作
}else if{
//如果布尔表达式是true 就执行操作
}else if {
//如果布尔表达式是true 就执行操作
}else{
//如果以上布尔表达式都不为true 就执行操作
}//else 必须放在最后
嵌套IF结构
if(布尔表达式){
//如果布尔表达式是1 true 就执行操作
if{
//如果布尔表达式是2true 就执行操作
}
}
switch结构
case标签必须是字符串常量和
循环结构
-
while循环
while(布尔类型){ //循环内容 } -
Do......while 循环 最少循环一次
do {
}while ();
- for循环
方法
Java方法是语句的集合,他们一起执行一个功能
方法类似于其他语言的函数;
方法是解决一类问题的步骤的有序组合
方法包含于类或者对象中
方法在程序中被创建,在其他地方引用
一个方法只能完成一个功能,这样利于我们的后期拓展。
方法的定义
方法包含一个方法头和一个方法体。
-
修饰符 可选
-
返回值类型
-
方法名 方法的实际名字
-
参数类型
- 形参
- 实参 实际调用传递
-
方法体 定义 该方法的功能
//修饰符 返回类型 方法名 (参数类型 参数名){ //方法体 //。。。 //return 返回值;(return也可终止方法) //}
方法的调用
-
调用方法:对象名.方法名(实参列表)
-
Java支持两种调用方法的方式,根据方法是否返回值来选择。
-
当方法返回一个值的时候,方法调用通常被当做一个值。列如:
int larger = max (30,40); -
如果方法返回值是void,方法调用一定是一条语句。
System.out.println("Hello,kuangshen!");Java是值传递
方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法的重载的原则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
- 方法的返回类型可以相同也可以不相同。
- 仅仅返回类型不同不足以成为方法的重载。
实现理论
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以旋转对应的方法,如果匹配失败,则编译器报错。
命令行传参
可变参数
Java支持传递同类型的可变参数给一个方法。
在方法声明中,在指定参数类型后加省略号(...);
一个方法中只能指定一个可变的参数,他必须是方法的最后一个参数。任何普通的参数必须在他的声明之前。
递归
自己调用自己
边界条件
前阶段
返回阶段








浙公网安备 33010602011771号