01

01

Java 三个版本

1.JavaSE(针对桌面应用程序开发)

2.JavaME(嵌入式的解决方案—移动端:Android)

3.JavaEE(针对企业开发的一套解决方案)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HDd4trZO-1601111153914)(D:\杂项软件\weixinobU7VjvgF-d9AgcxQA-yxaSnyU-o\6c5d75ba18e9411bace073c55b8c2dce\clipboard.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GLEqRzyF-1601111153916)(D:\杂项软件\weixinobU7VjvgF-d9AgcxQA-yxaSnyU-o\f3f18628a37e4b2586b6e38db10d07b9\clipboard.png)]


一、基本概念

1.常用的DOS命令

1-打开DOS命令窗口:win+r或者在文件夹路径下输入cmd
2-切换盘符:d:
3-查看当前路径下目录文件:dir
4-切换路径:cd 目录名
5-回退上一级目录:cd…
6-回退至根目录:cd/
7-创建目录:md 目录名称
8-创建文件 :copy con 文件名称
内容(ctrl+Z) 回车
9-删除文件:del 删除同类型文件 del*.+类型
10-删除目录:rd 文件夹名称(必须是空文件夹)
11-删除目录:rd/s 询问是否删除 rd/s/q 暴力删除
12-查看ip地址:ipconfig

2.JDK JRE JVM 基本概念和关系

JDK (Java Development Kit):是Java程序员开发工具包,包含JRE和开发人员使用的工具
JRE(Java Runtime Environment):是Java程序运行时环境,包含JRE和运行环境时所需要的核心类库
JVM(Java Virtual Machine):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vurBPIG6-1601111153917)(C:\Users\liwenbo\AppData\Roaming\Typora\typora-user-images\image-20200926132706038.png)]

三者之间的关系:JDK>JRE>JVM

运行程序必须要有JRE而JDK包含了JRE,JRE包含JVM

3.环境变量的配置

1)将jdk安装目录的bin目录路径作为path变量中的某个变量直接引用

在此电脑----属性----高级系统设置------环境变量-----在系统变量—新建变量命名为JAVA_HOME 变量值为jdk的安装路径

在path中引入JAAVA_HOME变量%JAVA_HOME\bin

4.常量

常量的概念:在程序运行过程中,其值不会发生改变的量。

常量分为两种: 第一种 字面值常量 (字串符常量、字符常量、整数常量、小 数常量、布尔常量、空常量)

​ 第二种 自定义常量final

5.计算机进制

计算机的底层运行的是二进制 0 1 0 1 …

二进制以0b开头 由01组成

八进制以0开头 由0-7组成

十六进制以0x开头 由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f组成

十进制-x进制 :用当前十进制除以基数,一直除到商为0,余数反转

x进制-十进制:位权展开法:系数乘以基数的权次幂相加

  • 8421码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6JWth9p0-1601111153918)(C:\Users\liwenbo\AppData\Roaming\Typora\typora-user-images\image-20200926134803894.png)]

6.变量

变量的概念:在程序运行过程中,其值不断发生改变的量。

变量的三要素:1.数据类型 2. 变量名 (遵循标识符规则)3.初始化值

  • 标识符规则:(开头必须以字母、_、$ 不能以数字开头 不能以关键字命名变量 不能出现特殊符号)

使用常量的注意事项:

1-变量在使用前必须给定一个初始值

2-同一个变量不能重复定义且同一行一般定义一个变量

3-在运算时需要保证变量的类型一致

4-变量的命名除了上述标识符规则 还应做到见名知意

7.Java中数据类型的划分

1.基本数据类型:

  • 整数类型:(默认int)

    1. byte:字节类型 占1个字节 取值范围-128-127
    2. short: 短整型 占2个字节
    3. int: 整数 占4个字节
    4. long: 长整数 占8个字节
  • 浮点类型:(默认是double)

    1. float: 单精度 占4个字节

    2. double:双精度 占8个字节

  • 字符类型:char 占2个字节

  • 布尔类型:boolean 占1个字节

2.引用数据类型

​ 数组,接口,类(具体类,抽象类) 面向对象讲JavaWEB/JavaEE:研究引用类型!

8.隐式类型提升

byte,short,char,三者之间互相不转换,一旦他们参与运算,数据类型优先提升int类型(要点)

9.Java中的强制类型转换

​ 目标数据类型 变量名 = (目标数据类型)初始化值;

​ 强制类型转换:不要随意使用,除非一些业务需求必须使用的时候才能用!

​ 强制类型会损失数据的精度

10.Java中的运算符

​ 运算符之前关于编程中的"+":

  • 表示数据是一个正整数
  • 表示算数运算符中的加法运算
  • 字串符拼接符号
  • 字串符+(拼接符号)任何数据=新的字串符
  1. 算术运算符

    a.基本的算术运算符

    ​ + - * / (默认:取值) %(取模:求余数)

    b. 扩展的算术运算符: ++ –

    1)单独使用

    结论:无论++还是–在变量前面还是后面:都是对当前该变量值进行自增1 或者自减1

    2)参与运算使用

    ​ 如果++或者–在变量前面,先自增1或者自减1,然后运算!

    ​ 如果++或者–在变量后面,先运算(赋值),然后在自增1或者自减1

  2. 赋值运算符

    基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取

  3. 比较(关系)运算符

    > < >= <= == !=

    变量范围:数学表达式:3<=x<=5 Java表达式:x>=3 && x<=5

    连接的表达式无论是简单还是复杂的,最终结果要么true/false

    注意事项:==不能写成=

  4. 逻辑运算符

    基本的逻辑运算符:

    逻辑单与 & (并列关系)结论:有false,则false

    逻辑单或 | (或关系:有一个满足条件就成立了) 结论:有true,则true

    逻辑异或 ^结论:相同则为false,不同则为true

    逻辑非 !非true,则false,非false,则true偶数个非,是当前结果本身

    扩展的逻辑运算符 (开发中使用逻辑双与/逻辑双或多一些!)

    逻辑双与: &&

    逻辑双或: ||

    Ø “&”和“&&”的区别 单&时,左边无论真假,右边都进行运算。

    双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

    “|”和“||”的区别同理,双或时,左边为真,右边不参与运算

    逻辑运算符号:连接的要么数值/要么表达式—>结果:true/false

    位运算符号:连接的是两个具体的数据值----->具体的结果数据!

  5. 位运算符

    基本的运算符号位

    与:&(有0则0)

    位或: | (有1则1)

    位异或:^(不同为1,相同为0)

    **~反码:**按位取反:全部1变0,0变1,再求原码)

    移动符号

    左移:<<左移动,将最高符合位丢弃掉,在右边补齐0

    特点:将<<符号左边的数据乘以2的移动次幂

    右移:>> :右移动,如果最高符号位为0,左边补0,如果最高符号位为1,左边补齐1

    特点:将>>符号左边的数据除以2的移动次幂

    无符号右移:>>>向右移动,无论最高符合位为0还是1,左边补0!

  6. 三元三目运算符

    单目: int a = 5 ;

    二目: 两个变量进行比较 x == y

    三元运算符—三目运算符(未声明默认int)

    l 格式 (表达式) ? 执行true的结果:执行false的结果

    l 表达式:可以是简单的或者复杂的表达式------>true/false

    l 执行流程:

    ​ 1)先判断表达式是否成立,如果成立,执行true的结果

    ​ 2)如果不成立,执行false的结果

11.键盘录入

Scanenr是Java核心类: java.util.Scanenr;

(Java中只要不是java.lang包下的类都需要导包)

int nextInt():接收int类型数据

String nextLine():接收字符串类型的数据 (推荐这个:正式的写法)

String next() :也可以录入字符串

1)同时录入两个int

2)同时录入两个字符串String nextLine()

3)先录入字符串,在录入一个int

以上三个都没有问题

使用步骤:

1)导包:(目前写在class上面) 固定写法

格式 import java.util.Scanner; (用哪个类,导哪个类)

2)固定格式:创建键盘录入对象

Scanner 键盘录入的对象名 = new Scanner(System.in) ;

3)友情提示: 输出语句 “请您输入…:”

4)接收数据 (接收int类型数据)

int 接收的变量名= 键盘录入的对象名.nextInt() ;//录入下一个int类型的数据

5)输出完成业务操作

import java.util.Scanner;
class Test
	{
	public static void main(String[] args)
	{
	Scanner input = new Scanner(System.in);//键盘录入准备
	System.out.println("请输入您的会员卡四位尾号:");//友情提示
	int vip = input.nextInt();	//设置一个名称接收
	int bai = vip/100%10;//取余
	int suiji =(int)(Math.random()*10);
	//Math random是0-9的随机小数
	//System.out.print("您会员卡随机产生的尾号是:"+(int)suiji);
	//使用int将double强制类型转换 没有四舍五入  在二进制里直接截取 小数点后的都不要
	System.out.println("百位数字是:"+bai);
	System.out.println("随机数字是:"+suiji);
	if ( bai == suiji )//()内为条件  if语句内不能是赋值单一等号 = 
	{
	System.out.println("恭喜您获得幸运奖!!!获得高圆圆联系方式!");
	}
	else
	{
	System.out.println("非常遗憾!!!烧香去吧!");
	}
	}
	}

12.流程控制语句

  1. 顺序结构语句

    一旦进入main方法中(由Jvm 调用),从有效行开始依次从上往下执行!

  2. 选择结构语句

    • if语句

      格式一:

      if(表达式){ 语句;}

      执行流程:

      判断表达式是否成立,如果是true,成立,执行语句;

      如果不成立,不执行!

      格式二:

      if(表达式){ 语句1;}else{语句2;}

      执行流程:

      1)首先判断表达式是否成立,如果是true,执行语句1

      2)如果不成立,执行语句2;

      格式三:

      if(表达式1){语句1; }else if(表达式2){语句2; …}else{语句n+1 ;}

      执行流程:

      1)首先判断表达式1是否成立,如果成立,执行语句1,if语句结束!

      2)如果表达式1不成立,再次判断表达式2是否成立,如果成立,执行语句2,语句结束!

      3)如果上述表达式都不成立,就执行else中的语句,if语句结束!

      if语句格式的嵌套

      结构:

      if(表达式){//表达式成立if(表达式1){语句1;}else{语句2;}}

      else{ //不成立 if(表达式11){语句11;}else{语句22;}}

      执行流程:

      首先判断外层if中表达式是否成立,如果成立,执行表达式2是否成立如果表达式2成立,执行语句1;否则,执行语句2;外层if中表达式不成立,就执行else中的语句,首先判断表达式11是否成立,如果成立,执行语句11,否则执行语句22;

      if语句的注意事项:

      1)有if的地方需要有一对{} ,有{}的地方不能分号;

      2)在一个方法中(main() )定义一个{xxxd代码}---->局部代码块 (了解)

      作用:限定局部变量的生命周期

      局部变量:在方法定义中的变量---->随着方法的调用完毕而消失!内存中:GC 垃圾回收器(自动回收这些对象或者变量)

    • swtich语句

    • switch(表达式) { case 值1: 语句体1; break;

    • ​ case 值2: 语句体2; break;

      ​ …

      ​ default: 语句体n+1; break; }

      执行流程:

      1)先判断表达式的值它和case语句值1,是否匹配如果匹配,执行语句1,遇见break ,switch语句结束了!

      2)如果值1不匹配,继续判断值2是否和表达式中的值是否匹配,如果匹配,执行语句2,遇见break,switch语句结束!

      3)如果上面的所有case语句都不匹配,执行default语句,执行语句n,直接结束

      switch语句使用的注意事项:****

      1)switch语句中的case语句后面跟的常量值,不能跟变量!

      对比:javascript:switch语句 中的case可以是常量也可以变量

      2)case语句中的break不能轻易省略,否则就会造成"case穿透"

      如果没有写break,跟下面case值不进行比较,直接运行语句,直到遇见break结束!

      3)switch中的default语句:书写位置默认是在末尾,但是它也可以在switch语句中的任何位置,但是不影响执行流程

      都需要先跟case中的值进行比较,如果都没有匹配,都需要执行default…

      如果default在语句的末尾,break可以省略,如果在语句中的话,不建议省略break ;

13.循环结构语句

for循环(使用最多)

while循环(其次)

do-while循环(很少使用)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WtnnLwEt-1601111153919)(C:\Users\liwenbo\AppData\Roaming\Typora\typora-user-images\image-20200926161224429.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-swpUZwau-1601111153920)(C:\Users\liwenbo\AppData\Roaming\Typora\typora-user-images\image-20200926161303159.png)]

for循环(使用最多)

for循环的格式:for(初始化语句;条件表达式;步长语句){循环体语句;}

执行流程:

1)初始化语句给变量进行赋值,只执行一次

2)判断这个条件表达式是否成立,

​ 如果成立,就执行循环体语句,在去执行步长语句 (++,–)

3)再次判断条件表达式是否成立,如果成立,继续上面执行方式…

4)一直循环到条件表达式不成立的时候,for循环结束!

求和的步骤:

 1)定义一个最终的结果变量 :最终的一个值 int sum = 0 ;

 2)将1,..10之间的数据遍历(一一获取出来)

 3)将当前sum值依次和数据本身做一个 +
  1. while循环

  2. do-while循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值