目录
2.分支结构:if..else..if else switch..case..breake..default continue break;
(2)获取元素 数组名[索引] 存储元素 数据名[索引] = 值
(4)动态初始化 String[] arr = new String[数组的长度]
(5)数组默认初始化值 整数:0 小数 0.0 字符:空格 布尔:false 引用:null
一、常见的cmd命令 win+r:cmd
盘符切换 D: | 展示本目录的文件 dir | 进入文件 cd code | 退到上一层文件 cd .. |
进入多级目录 cd code\a | 退到盘符 cd \ | 清屏 cls | 退出 exit |
二、如何在任意路径和目录打开QQ软件?
答:只要把QQ的路径记录在电脑的环境变量。步骤如下
- 打开我的电脑或者在桌面,右键属性
- 选择高级设置里面的高级
- 点击里面的环境变量
- 找到下面的系统变量里面的Path
- 新建把路径放里面就好
三、安装jdk
Java Downloads | Oracle 17版本,18版本有BUG,安装了不用配置环境变量,新版本默认了
四、第一个JAVA程序Hello World
1.打开记事本输入如下代码,并修改为.java后缀:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
2.打开cmd执行如下命令就可看到效果
D:\javaSE最新代码\day01>javac HelloWorld.java //得到.class文件
D:\javaSE最新代码\day01>java HelloWorld
Hello World
五、JDK与JRE
1.JDK是什么?有哪些内容组成?
JDK是Java开发工具包 * JVM虚拟机(java运行的地方) *核心类库(第三方包) *开发工具(javac,java)
2.JRE是什么?有哪些内容组成?
JRE是运行环境 JVM、核心类库、运行工具
3.JDK,JRE,JVM三者的包含关系
*JDK包含JRE *JRE包含了JVM
六、注释
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** */
七、关键字
是JAVA赋予特定含义的字母
八、字面量
字面量类型 | 说明 | 举例 |
整数类型 | 不带小数点的数 | 666,88 |
小数类型 | 带小数点的数 | 13.14 |
字符串类型 | 用双引号引起来的内容 | "HelloWord" |
字符类型 | 用单引号引起来,里面只能有一个字符,或是制表符 | 'a' '我' '\t' |
布尔类型 | 布尔值,表示真假 | 只有两个值,true,false |
空类型 | 一个特殊的值,空值 | 值是:null |
1.制表符 '\t' (空格8倍)补齐前面8的倍数个字符,可以补齐一个或者8个字符
九、变量
1.定义
- 变量是用来定义一些不能确定的值
- 定义的格式:数据类型 变量名 = 数据值 int a = 10;
- 不能重复定义相同的变量名的值 int a = 10; int a = 20(错)
- 修改变量值 int a = 10; a = 20
- 定义多个值 int a = 10 , b =11, c = 12;
- 建议赋值定义一起写,不要分开
2.公交车案例
1.一开始没有乘客。第一站:上一位,第二:站上两位,下一位,第三站:上两位,第四战:下一位,第五战:上一位
public static void main(String[] args) {
int count = 0;
count = count + 1;
count = count + 2 - 1;
count = count + 2;
count = count - 1;
count = count + 1;
System.out.println(count);
}
十、进制
二进制:0,1,满2进1,以0b或0B开头。
十进制:0-9,满10进1.
八进制:0-7,满8进1,以数字0开头.
十六进制:0-9及A-F,满16进1。以0x或0X开头表示。此处A-F不区分大小写
十进制 十六进制 八进制 二进制
9 9 11 1001
12 C 14 1100
二进制转十进制 1001===> 1*2*3+1 = 9
正数三码合一都等于原码,负数需要计算(出题人会给补码)
1 0 0 0 1 1 1 0 -14的原码
1 1 1 1 0 0 0 1 -14的反码(原码除符号位都取反)
1 1 1 1 0 0 1 0 -14的补码(反码+1,(最后一位+1))
十进制转二进制
除二取余数再逆过来 13/2 1101
二进制 转 八进制 011 101 001 三个一位 3 5 1
二进制 转 十六进制 1110 1001 四个一位 E 9
十一、数据类型
1.定义
基本数据类型:整形:byte \ short \ int(常用) \ long 浮点型 float \ double(常用) 字符型 char 布尔型 boolean
引用数据类型:类 class 接口 interface 数组 array
1.声明long数据类型需要加 l 或 L long a = 12031L;
2.声明float数据类型需要加 f 或 F long b = 12031F;
3.char只能声明一个字符或转义字符 char a ="男" a = "\n"
byte = 1字节 1字节 = 8bit位 -128~127 1字符 = 2字节
自动类型提升:byte、char、short->int->long->float->double依次变大 容量小的与容量大的运算时,结果自动提示转换为大
byte、char、short这三个运算为int byte+byte = int
强制类型转换:double a = 100.0; int b = (int) a (1)可能会造成精度损失
2.案例:输出老师信息
public static void main(String[] args) {
String name = "黑马谢广坤";
int age = 18;
char sex = '男';
double hight = 180.1;
boolean isSingle = true;
System.out.println("老师姓名是:"+name+"年龄是"+age+"性别是"+sex+"身高是"+hight+"是否单身"+isSingle);
}
十二、表示符
1.定义
就是名字:由数字、字母、下划线(_)和美元($)组成。不能以数字开头。不能是关键字。区分大小写。
十三、键盘录入
1.使用步骤
- 导包 import java.util.Scanner;(一般开发工具idea和eclipse会自动录入)
- 创建对象 Scanner sc = new Scanner(System.in);
- int i = sc.nextInt() 只能输入整数
2.练习:求两数之和
强制转化 int a = (int) a+b
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
}
}
十四、使用Idea
1.创建项目步骤
- 点击File下的Project Structure...
- 选择Module、java下finish取名就可
2.快捷键
psvm:创建主方法 sout:输出语句 ctrl+t:提示方法参数 ctrl+alt+m:抽取方法
3.设置 file/settings...
主题:Appearance:theme主题 字体:Editor/Font/Size Consolas程序员专用字体 注释:字体下:language default/comments
配置自动导包 :Editor/General/Auto import 取消区分大小写 :Editor/General/code Completion/Match case
十五、运算符
1.定义:
对自变量操作的符号
2.算术运算符:
+ 正号 - 负号 +加 -减 *乘 /除 %取余 ++(自加)++(自减) +链接 +=(1+=1)*= /= 有小数参与可能不精确
== 相等于 !=不等于 < 小于 >大于 >=大于等于 <=小于等于 instanceof
链接运算+ int a = 100, string b = "你好" a+b
自动类型提升:byte、char、short->int->long->float->double依次变大 容量小的与容量大的运算时,结果自动提示转换为大
byte、char、short这三个运算为int byte+byte = int
强制类型转换:double a = 100.0; int b = (int) a (1)可能会造成精度损失
byte = 1字节 1字节 = 8bit位 -128~127 1字符 = 2字节
&逻辑与 &&短路与 |逻辑或 ||短路或 !逻辑非 ^逻辑异或(相同为假,不同为真)
a b a&b a&&b a|b a||b !a a^b
true false false false true true false true
<<左移 3<<2 =12==>3*2*2=12 规律左移几位就等于原来的数值乘2左移几次方幂
>>右移 3>>2=1==>3/2=1 规律右移几位就等于原来的数值除2右移几次方幂
>>>无符号右移
&与运算 12:00001100 5:00000101 ===> 4:00000100 有0为0
|或运算 4:00000100 12:00001100 5:00000101 有1为1
^异或运算 13:00001101 12:00001100 5:00000101 ==>9:00001001 相同为0不同为1
~取反运算 取反
3.案例,输入个数知道他的个十百得数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("百位是"+a/100%10+"十位是"+a/10%10+"个位是"+a%10);
}
十六、流程控制语句
1.顺序结构:从上往下执行
2.分支结构:if..else..if else switch..case..breake..default continue break;
3.循环结构:for do...while while
switch得几种写法
switch (1){
case 1->{
System.out.println("你好");
break;
}
}
switch (1){
case 2:{
System.out.println("你好");
break;
}
}
switch (1){
case 2:
System.out.println("你好");
}
1.无限循环
for(;;){} while(true) do...while(true)
练习:100以内逢个位7,十位7,倍数7跳过
for(int i = 0 ; i < 100 ; i++){
if (i % 10 == 7 || i / 10 % 10 ==7 || i % 7 == 0){
System.out.println('过');
continue;
}
System.out.println(i);
}
十七、数组
1.定义
(1)静态初始化:
完整格式 静态初始化 数据类型 [] 数组名 = new 数组类型[]{元素1,元素2...};
简化格式 数据类型 [] 数组名 = {元素1,元素2...};
(2)获取元素 数组名[索引] 存储元素 数据名[索引] = 值
(3)数组得遍历 for(int i = 0 ; i <arr.length ; i++)
(4)动态初始化 String[] arr = new String[数组的长度]
(5)数组默认初始化值 整数:0 小数 0.0 字符:空格 布尔:false 引用:null
(6)小心越界
(7)数组的内存图
- 栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行
- 堆:new来创建的,都存在堆内存
十八、方法
1.定义
方法名字的书写规则首单词的字母小写,后面的单词首字母大写
public static 返回值类型 方法名 (参数){ 方法体 return }
public static void main(String[] args) {
hello();
sum(10,20);
System.out.println(zero(10));
}
public static void hello() {
System.out.println("你好");
}
public static void sum(int a,int b){
System.out.println(a+b);
}
public static int zero(int r){
return r*r;
}
2.方法的重载
简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关
public static void main(String[] args) {
sum(10,20);
sum(10.1f,5);
}
public static void sum(int a,int b){
System.out.println(a+b);
}
public static void sum(float a,int b){
System.out.println(a+b);
}