Week01
day01:
1)编写第一个HelloWorld
class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
2)Java中的注释:
1)//----------------单行注释
2)/*注释
内容*/ -----------多行注释
注释内容 是通过jdk安装目录bin目录javacdoc.exe进行编译的
3)关键字:
被Java语言赋予特定含义的单词.组成关键字:小写(在高级记事本以及开发工具中,对"关键字"有一种特殊颜色标记)
class:Java中最基本的单元(所有的Java程序中都需要在class中使用) class类名{}
public:常用的权限修饰符 权限足够大,公共的
4)标识符:
给包,类,接口,变量,方法,常量等起名字的字符序列!
组成规则:(见名知意) 严格区分大小写
1.26个英文大小写字母
2.数字字符
3.$
4._
包: 开发中,针对包.多级包,中间使用.隔开(代码需要分层)
包的命名:公司域名反写 注意:字母全部小写 www baidu
类和接口的命名规则:单个单词(首字母大写,其余小写)
多个单词(大驼峰命名法:每个单词的首字母都大写,其余小写) HelloWorld
变量/方法的命名规则: 单个单词(字母全部小写)
多个单词组成:(小驼峰命名法:第一个单词字母小写,其余每个首字母大写,其余字母小写)
常量命名规则: 单个单词(单词字母全部大写)
5)常量:
程序执行过程中,其值不发生改变的量.
字面值常量:
字符串常量 "hello" "你好" 使用双引号包起来的内容
字符常量 'b','0','A' 使用单引号包起来的内容
整数常量 1 2 4 包含"进制" 整数对应十进制
小数常量 3.14 /1.1/2.6
布尔常量 true/false
空常量 null ---- 后面在引用数据类型(String类)中默认值
自定义常量:
6)常用的dos命令:
进dos系统:Windows键+R键_---输入"cmd"------回车进入
1.罗列某个盘符下的所有的文件夹及文件详情信息 dir
2.盘符切换 盘符号:(不区分大小写)
3.改变目录 cd 路径
4.回退上级目录 cd ..
5.回退根目录 cd \
6.创建文件夹 md 文件夹名称
7.删除文件夹/目录 rd 文件夹/目录名称(必须为空目录)
8.删除带内容的目录(会询问是否删除) rd /s 带目录的目录名称
9.删除带内容的目录(直接删除) rd /s 带内容的目录名称
10.创建文件 copy on 文件-----输入内容 ctrl+z -----回车
11.清屏命令 cls
12.查看ip ipconfig
13.查看自己主机跟其他主机能否进行通信 ping ip地址/域名
7) JRE JDK JVM
JDK:java开发工具包:里面包含jre以及一些开发工具的包
jre:Java运行环境 包含jvm以及Java所需的核心类库
jvm:是Java虚拟机,一个假象计算机,能够处理Java程序:
jvm < jre < jdk
8)环境变量的配置;
此电脑 右键属性 高级系统设置 环境变量 系统变量
新建变量名:JAVA_HOME
变量值:D:\Program\jdk (jdk安装目录)
找到path 里面新增%JAVA_HOME%\bin,置顶
9)进制转换;
二进制的组成:0,1组成,以0B/0b开头
八进制的组成:01,2,3,4,5,6,7组成,以0开头
十进制:整数默认十进制
十六进制的组成:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f组成,以0x开头来表示
任意进制到十进制的转换 :位权展开法
系数:是当前每一个位上的数据本身
基数:X进制-----十进制(基数就是X)
权次幂:在基数上,从右往左(从0开始)
(每一个位的数据本身*基数的权次幂相加)
十进制到任意进制的转换:除基取余,一直除到商为0为止,余数反转!
day02
1)8421码(BCD码的一种)
1 1 1 1 1 1 1 1 二进制数据
128 64 32 16 8 4 2 1 十进制数据
能够快速的让十进制数据和二进制数据相互转换!
8个比特位上的每一个二进制数据都是1,每一个二进制数据1都对应一个十进制数据值
2)有符号位的数据表示法
计算机底层对数据的计算:是通过一个补码进行计算的
组成:最高符号位+数值位组成
整数:
正整数/负整数
正数的原码.反码,补码都相同
(最高符号位为0表示:正数,最高符号位为1表示:负数)
10 原码:00001010
最高符号位 数值位
0 0001010 -----------------原码
0 0001010------------------反码
0 0001010----------------补码
-10 原码:10001010
最高符号位 数值位
1 0001010 ---------原码
1 1110101----------反码
+1
----------------------------------------------------------------------------
1 1110110----------补码
负数的反码是在原码的基础上,最高符号位不变,数值位按位取反,0变1,1变0
负数的补码是在反码的基础上,在末尾+1(最高符号位不变)
3)变量
在程序执行过程中,其值发生改变的量!
三要素:
1).数据类型
2).变量名称:满足标识符规则
3).初始化值:满足的范围即可!
变量的注意事项:
在Java语言(强类型语言)中,同一个变量不能重复定义
一行就写一个变量,之后加分号
变量要么直接初始化,要不就先定义,但必须在使用之前对其进行初始化
4)Java的数据类型:
基本数据类型(四类八种)
整数类型
byte 字节类型 占1个字节(8个比特位) 取值范围-128~127
short 短整型 占2个字节
int 整数默认类型 占4个字节
long 长整型 占8个字节(在初始值的末尾加L或l)
浮点类型(默认类型double)
float 单精度 占4个字节
double 双精度 占8个字节
字符类型
char 初始化值:单引号''括起来的单个内容
布尔类型
boolean 不会参与类型转换,仅表示真\假 true\false 占1个字节
在Java中有一个隐式类型转换:byte,short,char三者之间不进行相互转换,但是 参与运算,优先转换为int类型,long.float----double类型
class Demo{
public static void main(String[] args){
int a = 1;
byte b = 4;
int c = a + b;
System.out.println("c:"+c);
}
}
--------------------------------------------------
c:5
引用数据类型
5)显式转换和隐式转换
显式转换(强制类型转换 ::将取值范围大的类型强制转换成取值范围小的类型(大变小)
目标数据类型 变量名 = (目标数据类型)初始化值; 会有损精度!
使用强制转换,因为要使不同类型的数据传递信息
隐式转换(自动转换):将取值范围小的类型自动提升为取值类型大的范围(小变大)
(byte,short, char,---->int--->long--->float--->double)
6)Java中的运算符号
1)算术运算符:基本的运算符号 +,-,*,/ 默认取整,%(模)求余数
2)扩展的算术运算符
++或-- 单独使用
(无论++或--在数据前面还是数据后,都是对当前数据本身自增1或者自减1)
参与运算使用
(如果++或者--在数据的前面,需要先自增1或者自减1)
(如果++或者--在数据后面,先进行运算,然后再进行自增1或者自减1)
3)赋值运算符
基本的赋值运算符: = (将=右边的数据赋值给左边类型的这个变量)
int c = 110;//将110赋值给int类型的变量c
= 不等于 ==
==:是比较运算符,比较两个数值是否相等
扩展的赋值运算符
将符号右边的数据和左边的数据相加,然后赋值给左边的变量
+=,-=,/=,%=
比较运算符
!=,<,<=,>,>=,== 比较运算符最终结果不是true,就是false
== 不能写成 =
day03
1)java中的运算符号
1)逻辑运算符
基本的逻辑运算符号
逻辑单与:& 并列关系(满足全部条件) 有false则false 有假则假
逻辑单或:| 或的关系 满足一个条件即可 有true则true 有真则真
逻辑异或:^ 相同为false,不同则为true
逻辑非: ! 非true则false,非false则true,偶数个非是他本身
扩展的逻辑运算符
逻辑双与 &&
逻辑单与 & 和逻辑双与 &&的关系
共同点:都能够表示"并列"关系
不同点
逻辑单与&:左边的表达式无论是true还是false,右边都要执行
逻辑双与&&:左边的表达式如果是false,则右边不执行(短路效果)
逻辑双或 || :左边的表达式如果是true,则右边不执行
2)位运算符
基本的位运算符号
位于: &
位或: |
位异或:^ 特点:一个数据被另一个数据位异或两次,其值是他本身!
反码:^
3)三元(三目)运算符
class OperatorDemo{
public static void main(String[] args){
(表达式)? 1)执行true的结果:2)执行false的结果;
表达式:可以简单的也可以复杂的..
执行流程:
判断表达式是否成立,如果成立则执行1)
如果不成立,则执行2)
2)键盘录入
Java.util.Scanner ----------简单的文本扫描器
使用步骤
1)导包:import java.util.Scanner;---------(只要不是java.lang的类都需要导包)
2)固定格式: 创建键盘录入对象(文本扫描器对象)
Scanner 对象名 = new Scanner(System.in) ;
3)开始录入数据:
System.out.println("请您输入第一个数据:");
int 变量名 = 对象名.nextInt() ;
4)使用变量
练习:已知两个变量a,b(键盘录入数据)分别进行初始化,求出两个数据的最大值!
步骤:
import Java.util.Scanner; -------导包
class ScannerDemo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in); ------创建键盘录入对象(文本扫描器对象)
System.out.println("请您输入第一个数据:"); -------提示并录入数据
int a = sc.nextInt();
System.out.println("请您输入第二个数据:"); --------提示并录入数据
int b = sc.nextInt();
int max = (a>b)?a:b; -------三元运算符进行比较
System.out.println("最大值是:"+max);
}
}
3)流程控制语句_顺序结构语句
语句依次由上而下进行执行 System.exit(0); -----正常终止jvm
class Demo1{
public static void main(String[] args){
System.out.println("java使我快乐");
System.out.println("学无止境");
System.exit(0);
System.out.println("程序结束");
}
}
4)流程控制语句_选择结构语句之if格式1
选择结构语句之if格式1:
if(表达式){
语句;
}
执行流程:
1)先判断表达式是否成立,
2)如果成立,执行语句内容
3)不成立,则不执行!
注意事项:
if后面的(表达式){}:有"{"的地方不能有分号;
有分号的地方不能有左大括号
day04
1)流程控制语句_选择结构语句之if语句格式2与三元运算符的区别
if语句格式2:范围大,既可以操作输出语句也可以操作具体的数据值
三元运算符:只能操作具体的数据(三元能够实现的,一定能够使用if格式2,但是,if能够实现,三元运算符不一定能够实现!if语句和三元:优先考虑if语句)
练习:键盘录入三个数据,求三个数据中的最大值,使用if语句格式嵌套完成和三元分别完成
if语句格式2嵌套
if(表达式){
if(表达式1){
}else{
}
}else{
if(表达式2){
}else{
}
}
import java.util.Scanner;
class ScannerDemo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请您输入第一个数据:");
int a = sc.nextInt();
System.out.println("请您输入第二个数据:");
int b = sc.nextInt();
System.out.println("请您输入第三个数据:");
int c = sc.nextInt();
if(a>b){
if(a>c){
System.out.println("最大值:"+a);
} else{
System.out.println("最大值:"+c);
}
}else{
if(b>c){
System.out.println("最大值:"+b);
}else{
System.out.println("最大值:"+c);
}
}
}
}
-------------------------------------------------------------------
三元运算符:
import java.util.Scanner;
class ScannerDemo1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请您输入第一个数据:");
int a = sc.nextInt();
System.out.println("请您输入第二个数据:");
int b = sc.nextInt();
System.out.println("请您输入第三个数据:");
int c = sc.nextInt();
int max =(a>b)?((a>c)?a:c):((b>c)?b:c);
System.out.println("三个数据最大值:"+max);
}
}
3)if语句格式3
练习1:商场根据会员积分打折,
2000分以内打9折,4000分以内打8折
8000分以内打7.5折,8000分以上打7折
使用if-else-if结构,实现手动输入购物金额和积分,计算出应缴金额
import java.util.Scanner;
class IfDemo3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入商品价格");
int price = sc.nextInt();
System.out.println("请输入您的会员积分");
int score = sc.nextInt();
if(price<0 || score<0){
System.out.println("输入数据有误");
}else if(score>=0 && score<2000){
System.out.println("您应缴费金额:"+(price*0.9));
}else if(score>=2000 && score<4000){
System.out.println("您应缴费金额:"+(price*0.8));
}else if(score>=4000 && score<8000){
System.out.println("您应缴费金额:"+(price*0.75));
}else{
System.out.println("您应缴费金额:"+(price*0.7));
}
}
}
--------------------------------------------------------------------------------
练习2:当货物重量小于20 公斤的时候,收费5 元,大于20 公斤小于100 公斤的时候超出20 公斤的部分按每0.2 元每公斤计费,如果超出100 公斤的时候,超出的部分按照每公斤0.15 元计算。
import java.util.Scanner;
class IfDemo2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请您输入货物重量");
int weight = sc.nextInt();
if(weight<0){
System.out.println("输入数据错误");
}else if(weight>0 && weight<=20){
System.out.println("收费5元");
}else if(weight>20 && weight<=100){
System.out.println("收费:"+((weight-20)*0.2+5));
}else {
System.out.println("收费:"+((weight-100)*0.15+80*02+5));
}
}
}
-------------------------------------------------------------------------------
练习3:键盘录入一个月份的值:录入月份,提示 是什么季节!
3.4.5 春季
6.7.8 夏季
9.10.11 秋季
12.1.2 冬季
import java.util.Scanner;
class IfDemo{
public static void main(String[] args){
Scanner sa = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sa.nextInt();
if(month>12 || month<=0){
System.out.println("没有此月份");
}else if(month==3 || month==4 || month==5){
System.out.println("春季");
}else if(month==6 || month==7 || month==8){
System.out.println("夏季");
}else if(month==9 || month==10 || month==11){
System.out.println("秋季");
}else {
System.out.println("冬季");
}
}
}
4)Switch语句
switch语句使用的注意事项:
1)case语句后面的值只能是常量,不能是变量
2)写switch语句的时候,case语句必须有break语句(否则会被case穿透),结束switch语句
3)switch语句的结束条件-----------a)遇到break结束,b)程序默认执行末尾结束
4)default语句:可以在switch语句中的任何位置
5)如果在语句的末尾,break是可以省略
练习1:录入一个整数,如果是1~5 之间,则分别输出5 个福娃的名字,否则输出“北京欢迎你”(贝贝、晶晶、欢欢、迎迎和妮妮)
import java.util.Scanner ;
class SwitchDemo1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个数字(1-5):") ;
int name = sc.nextInt() ;
switch(name){
case 1:
System.out.println("贝贝");
break;
case 2:
System.out.println("晶晶");
break;
case 3:
System.out.println("欢欢");
break;
case 4:
System.out.println("迎迎");
break;
case 5:
System.out.println("妮妮");
break;
default:
System.out.println("北京欢迎您");
break;
}
}
}
练习2:键盘录入一个数据,判断该月份的季节
3,4,5月---->春季
6,7,8月---->夏季
9,10,11月--->秋季
12,1,2---->冬季
import java.util.Scanner ;
class SwitchDemo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入月份(1-12):") ;
int month = sc.nextInt() ;
switch(month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
default:
System.out.println("没有该季节");
break;
}
}
}
练习3:键盘录入一个(1-7)的数据,判断星期几?
import java.util.Scanner ;
class SwitchDemo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个数据(1-7):") ;
int week = sc.nextInt() ;
switch(week){
case 1:
System.out.println("星期一") ;
break ;
case 2:
System.out.println("星期二") ;
break ;
case 3:
System.out.println("星期三") ;
break ;
case 4:
System.out.println("星期四") ;
break ;
case 5:
System.out.println("星期五") ;
break ;
case 6:
System.out.println("星期六") ;
break ;
case 7:
System.out.println("星期日") ;
break ;
default:
System.out.println("输入错误") ;
break ;
}
}
}