JavaSE_第一周
Java概述与环境搭建
配置环境
JAVA_HOME(jdk的根目录) path(jdk的bin目录或%JAVA_HOME%\bin)
测试:javac、java、javadoc
DOS命令
进入DOS:win+r,输入cmd
更改盘符:盘符名称+冒号,例:进入E盘 e:
创建文件夹:md 文件夹名称 ,例:md abc
进入目录:cd 文件夹名
查看所有文件及文件夹:dir
退出到上一级目录:cd..
退出到根目录: cd\
删除文件:del
删除文件夹:rd 文件夹名[/s]
注释方式
// 单行注释
/*
多行注释
*/
/**
文档注释
*/
注:使用javadoc命令生成文档注释页面 javadoc 文件名.java
命名规范
组成:数字字母下划线及$组成
规定:不能以数字开头,不能与关键字,保留字gost | const重复
约定:
类名:首字母大写,大写字母分词
变量名:首字母小写,驼峰命名法或单词间用下滑线分割
包名:全小写
常量名:全大写
带包编译以及运行
包声明必须在首行 package com.qf.demo
第一种方式:
编译:cd com/qf/demo进入子目录:javac Demo1.java
解释执行:cd ../../../退出子目录:java com.qf.demo.Demo1
第二种方式:
编译:javac -d . com/qf/demo/Demo1.java
解释执行:java com.qf.demo.Demo1
第三种方式:
编译:javac -d ./更改的子目录 com/qf/demo/Demo1.java
解释执行:cd 子目录名 进入子目录 java com.qf.demo.Demo1
变量 · 数据类型 · 运算符 · 控制台输入
导包Scanner
import 包名.类名; 例如:import java.util.Scanner;
import java.util.Random;
创建对象 : 用new关键字 例如:Scanner sc = new Scanner(System.in);
Random r = new Random();
使用:例如:sc.nextInt();//从键盘输入一个int值
int i = sc.nextInt();//整型还有byte,short,long都有相应的
double d = sc.nextInt();//浮点型float也有相应的
String s = sc.next();
char c = sc.next().charAt(0);
//产生随机数
int ir = r.nextInt(100);//产生0—99之间随机一位整数
变量定义
先声明再初始化,再使用
= : 赋值符号,运行从右向左
数据类型 变量名 = 值;
数据类型
基本数据类型:
整型:默认整型数据类型为int
byte: 1字节 -2^7~2^7-1 -128~127 1byte = 8bit
short: 2字节 -2^15~2^15-1 -32768~32767
int: 4字节 -2^31~2^31-1 -2147483648~2147483647
long: 8字节 -2^63~2^63-1 ...
注: 一般在long类型后面加L或l,如果没有超过int范围,可省略尾部标识
byte和short在进行运算时,类型会自动提升为int
浮点型:默认浮点型数据类型为double
float: 4字节 一般在后面加F或f
double: 8字节 默认类型
字符型:
char: 2字节 0~65535
赋值方式:char c1 = '字'; | char c2 = 65; | char c3 = '\u0041'
布尔类型:boolean: true | false
引用类型:
字符串类型:String
数组类型
其他引用类型
类型转化
自动类型转换:当小范围的数值赋值给大范围的变量;当整型变量赋值给浮点型变量时。
强制类型转换:当大范围的数值赋值给小范围的变量;当浮点型变量赋值给整型变量时。
运算符
算术运算符:+、-、*、/、%
加时可能是连接符号,取决于左右两边是否有字符串,如果有则为连接符号
除时,除数为0.则会造成一种除数为0的异常,而中断程序导致程序提前结束
求余时,余数的正负取决于被除数的正负
两个相同的byte、short进行运算,结果的类型为浮点型
浮点型与整型相运算,结果的类型为浮点型
不同的整形数之间相运算,结果的类型会自动提升为大范围类型
不同的浮点型之间相运算,结果的类型会自动提升为double
比较运算符:>, <, >=, <=, ==, != 运算结果都为布尔类型(true|false)
if选择结构 · switch开关分支 · 运算符
流程控制语句
语句:
顺序结构
选择结构
循环结构
选择流程控制语句:if
单判断:单选是/否
if(表达式){ // 表达式的结果是boolean类型
// 语句块
}
语法:当表达式成立时,执行语句块,否则跳过所有语句块
if-else: 二选一
if(表达式){
}else{
//不满足if的剩余所有情况
}
if-else if...[else] : 多选一
if(表达式1){
}else if(表达式2){
}...
[else{ // 默认条件是以上皆不满足时的情况
}]
if嵌套
if(){
// 嵌套其他条件判断语句
if(){
}
}
运算符
逻辑运算符:&& || !
与:&& 当符号左右两边同时为true时,表达式的整体结果为true,即全真为真,有假即假
或:|| 当符号左右两边任一方为true时,表达式的整体结果为true,即有真即真,全假为假
非:!true的反是false,false的反是true
[!x.equals(y)]
三目运算符:操作数有三个
变量 = 布尔表达式 ? 结果1 : 结果2;
例:res = x > y ? x : y;
与if-else相互换
switch开关分支语句
switch(表达式和常量){
case 值1:
语句块;
break;
case 值2:
语句块;
break;
...
default:
语句块;
}
表达式的值与case后的值相比较,相同则进入对应的语句块
switch中变量可取的类型为:byte,short,int,char,String
循环结构与流程控制关键字
循环语句
初始化语句; 执行条件; 变量迭代; 循环语句块;
while | for | do-while
while
初始化变量
while(布尔表达式语句){
//语句块
//变量迭代
}
注:已知循环条件
while(true){//无限循环:死循环
}
for
for(1-初始化变量;2-执行条件;4-变量迭代){
//3-语句块
}
注:已知循环次数
do-while
初始化变量
do{
//语句块
//变量迭代
}while(执行条件);
注:先无条件执行语句块,再进行条件判断,如果条件成立,则继续执行循环语句,否则循环终止
流程控制关键字
break:用于终止循环
continue:用于跳过本次循环
注:break不止是用于循环语句中,还可用于switch语句中,而continue只能用于循环语句中
equals:用于字符串的比较;
== 比较的是地址,而equals比较的是字符串的内容
方法
方法的定义
方法:功能模块,可反复利用
方式1:无参无返回值
public static void 方法名(){
}
方式2:有参无返回值
public static void 方法名(参数类型 参数名){//形参:参数类型、个数、顺序
}
方式3:无参有返回值
public static 返回值类型 方法名(){
//功能代码
return 值;
}
注:如果代码中存在分支语句,每个分支语句都必须有返回值
return可以直接结束方法,它是方法中的最后一句话
方式4:有参有返回值
public static 返回值类型 方法名(参数类型 参数名){
//功能代码
return 值;
}
如果方法中没有返回值类型,用void 标识,此时也可以使用return,但return后不能有返回值,此时return 用于结束方法
方法的调用
同类内: 方法名(实际参数)//实参:给形参传的值
同包不同类:类名.方法名(实参)
跨包不同类:先导包,再 类名.方法名(实参)