Java概述

1.概念:
Java是一门面向对象的语言,而之前的学到的C语言是面向过程的语言,C++是面向对象的一门语言。

1.1 面向对象: 一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。
1.2 面向过程: 面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。

2.2 为什么学习Java语言
Java目前是一门使用最为广泛的语言之一;
Java还有许多特性:简单性、分布式、可移植性、健壮性、多平台独立、动态性等。Java拥有极高的跨平台能力:(编写桌面的应用程序、WEB应用程序、嵌入式系统的应用程序、分布式系统的开发等)
Java高端路线—大数据?
Hadoop技术最多用的是Java、HBase。掌握Java

2.3 Java能干嘛(就业方向)
  • 安卓应用
  • 在金融行业应用的服务器程序
  • 网站的设计(电子商务的网站)
  • 嵌入式领域
  • 大数据技术
2.4 技术架构

JavaSE-------标准版

JavaEE------企业版

JavaME-----微型版

2.5 JVM/JDK/JRE的概述
2.5.1 什么跨平台

平台:指的就是操作系统(Windows、Linux、Mac)

跨平台:java程序可以运行在不同的操作系统上,一次编译到处运行

原理:实现跨平台需要Java虚拟机JVM(Java Virtual Machine)

2.5.2 JVM/JRE/JDK

A:什么是JVM

JVM就是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台都有自己的虚拟机,所以java语言是跨平台。

B:什么是JRE

包括Java虚拟机(JVM)和Java程序所需要的核心类库等如果想要运行一个开发好的java程序,计算机中只需要安装JRE就可以完成。

JRE:JVM+核心类库

C:什么是JDK

JDK是提供给我们开发人员使用的,其实里面已经包含了Java开发工具,当然也包括JRE。如果你安装了JDK,就不用单独再安装JRE了。

JDK:JRE+java开发工具

D:JDK,JRE,JVM的关系和作用。

JDK包含JRE和开发工具

JRE包含JVM和核心类库

2.6常用的DOS命令

2.6.1 打开控制台

Win+R, 输入cmd

2.6.2 熟悉一下常用的命令

  • d:回车 盘符的切换
  • dir:列出当前目录下的所有的文件和文件夹
  • cd 改变指定目录(进入相对应的目录)
  • cd… 回退
  • cls:清屏操作
  • exit:退出dos命令行
2.7环境变量的配置
  • JDK的下载
    通过官方获取JDK,www.oracle.com下载的时候注意:不同操作系统,下载不同的版本。32位和64位。
  • JDK的安装
    傻瓜式安装,下一步即可。
    建议安装的时候,用英文路径。不要用中文或者带符号还有带空格等
  • 为什么要配置
    java程序的编译和运行使用javac和java命令,所以只能在bin目录下写程序。
    在实际开发中,不可能把所有的程序都放到bin目录下,最好的方法就是可以在任意目下能够访问javac和java。
  • 如何配置
    a)创建新的变量名称:JAVA_HOME
    【计算机】---->右击【属性】---->【高级系统设置】----->【环境变量】----->【系统变量】
    变量值:JDK的安装路径,打开JAVA文件,单击地址栏即可
    b)【Path】:单击编辑
    在最后面添加;%JAVA_HOME%\bin;即可

3. HelloWorld案例

3.1需求分析

第一个见到的程序。

3.2技术分析

在命令行模式,输入javac命令对源代码进行编译,生成了字节码文件

javac 源文件名.java

编译完成后,如果说没有报错,那么我们进行java命令对字节码文件进行执行,执行时不要添加.class扩展名

java HelloWorld

3.3步骤分析
3.4代码实现
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("HelloWorld!");
    }
}
3.5扩展内容

HelloWorld常见问题:

  • 文件名隐藏
  • 单词拼写的错误(Class/string/mian)
  • 中文符号在输出语句的最后面使用中文分号
  • 括号的匹配{ ()}

4.注释

A:什么是注释

用来解释说明程序的文字

B:Java中的注释分类

单行注释:// 注释文字

多行注释:/* 注释文字 */

文本注释:/** 注释文字 */

C:注释的作用

  • 解释说明程序,增加可读性。
  • 帮助我们更好地去寻找程序的错误。

Doc文档注释生成:javadoc -d 存放的路径 HelloWorld.java

5. 关键字

A:概述

被java语言给定的特定含义的单词

B:特点

组成关键字的字母都是小写的。

常用的代码编辑器,针对关键字会有特殊的颜色标记,比较直观。这里建议关键字不需要死记硬背。

C: 常用的关键字


6.常量的案例

A:概念

在程序执行的过程中,它的值一直不发生改变的量。

B:常量的分类

  • 整数常量: 所有的整数 (234,250)
  • 小数常量:所有的小数(3.14159, 66.66)
  • 字符常量:由单引号引起来的内容(‘a’,‘A’,‘0’)
  • 字符串常量 由双引号引起来的内容(“HelloWorld”)
  • 布尔常量 特殊,只有true和false
  • 空常量 null(数组中学到)

练习:使用工具

7.变量

7.1需求分析

A:定义

存数的。容器。代词,指的就是所存的那个数。Person p; Score s;

B: 声明

int a;//声明一个整型的变量,叫a;

int b,c,d;//声明三个整型的变量,叫b,c,d

C:初始化

  • 声明的时候同时初始化
    int a = 666;
  • 先声明后初始化
    int a;
    a = 666;
7.2技术分析

使用:

见代码。

7.3步骤分析

变量的命名:

由字母。数字、下划线组成,但是不能由数字开头。

不能使用关键字

可以中文命名,但是不建议使用中文。

建议“见名知意”“驼峰命名法”

score, myScore,myJavaScore------驼峰命名法

帕斯卡命名法----Score,MyScore,MyJavaScore–类

7.4二进制转换

10进制和二进制的转换。

13=1101 666

7.5 计算机中的存储单元

位:bit

字节:byte

1B = 8bit

1KB = 1024B

1M = 1024KB

1GB = 1024M

8.数据类型的案例

8.1需求分析

A: 为什么有数据类型?

java是一门强类型的语言,对于每一种数据的定义都会有明确的规定,在内存中分配不同大小的内存空间。

B:数据类型的分类

基本数据类型:

整型:byte, short,int,long

浮点型:float,double

字符类型:char

布尔类型:boolean

引用数据类型:数组,接口,类等。后期学习。

8.2技术分析

byte:

  • byte数据类型:8位,占1个字节。
  • 最小值:-128 2^7
  • 最大值:127 2^-1
  • 默认值是0
  • byte在大型数组中使用,主要的目的就是为了节约内存空间,因为byte占的空间只有int的四分之一。

short:

  • short数据类型:16位,占2个字节
  • 最小值:-32768 -2^15
  • 最大值:32767 2^15-1
  • 默认值是0

int:

  • int类型:32位,占4个字节
  • 最小值 -2^31 20E左右
  • 最大值 2^31-1
  • 默认值是0

long:

  • long类型:64位,占8字节
  • 最小值
  • 最大值
  • 默认值:0L

float:

  • float:32位, 4字节
  • 默认值:0.0f

double:

  • 64位,8字节
  • 默认值:0.0d

char:

  • 2字节
  • ‘\u0000’-----0 最小值
  • 最大值:65535

boolean:

  • 只有两个值:true和false
  • 默认值:false
  • 一般用来做标记记录的。

9.运算符的案例

9.1需求分析

1)算术运算符:+ - * / % ++ –
2)关系运算符:> < >= <= == != boolean
3)逻辑运算符:&& || !
4)赋值运算符:= += -= *= /=
5)三目/条件运算符:boolean ? 数字1 : 数字2;
6) 字符串连接:+

9.2技术分析
9.3步骤分析
9.4代码实现

算术运算符

int y = 5;
  //alt + /
  System.out.println(x + y);//7
  System.out.println(x - y);//-3
  System.out.println(x * y);//10
  System.out.println(x / y);//0
  
  System.out.println(x++);//2
  System.out.println(x--);//3
  
  int x1 = 6;
  int x2 = 3;
  System.out.println(++x1);//7
  System.out.println(--x2);//2

逻辑运算符

//  只要有一个为假都为假  false
  //&&    x && y   
  //  0    1     0
  //  1    1     1
  //  1  0     0
  //  0    0     0
  int m = 8;
  int n = 6;
  boolean p = m < n && m ++ < 17;
  System.out.println(p);//false
  // || 或   只要有一个为真都为真。true
  boolean p1 = m < n || m ++ < 17; 
  System.out.println(p1);

赋值运算符

//赋值运算符---自带强转功能的用法
  int m1 = 12;
  //面试题,笔试题
  short a = 6;
  a += 20;//a = (short)(a + 20);
  System.out.println(a);

三目运算符

//三目运算符  boolean?数字1:数字2;
  int c = 33;
  int d = 88;
  int max = c > d ? c : d;
  System.out.println("max = " + max);
  if (c > d) {
   int max1 = c;
  }

字符串连接符

//+
  System.out.println("身高 " + a);
  //分别输出m和n
  System.out.println(m + "," +  n);
5.5扩展内容
5.6练习
* 1.算术运算符的练习:
		 *   1)输出7%3,输出9%3,输出3%6
		 *   2)声明整型变量a并赋值为5,a++,输出a
		 *     声明整型变量b并赋值为5,++b,输出b
		 *   3)声明整型变量c并赋值为5
		 *       声明整型变量d并赋值为c++,输出c,输出d
		 *     声明整型变量e并赋值为5
		 *       声明整型变量f并赋值为++e,输出e,输出f
		 *   4)声明整型变量g和h,并分别赋值为5
		 *       输出g--,输出g
		 *       输出--h,输出h
		 

		 * 赋值、字符串连接、三目运算符的练习:
		 * 1)声明整型变量a并赋值为5
		 *     在a本身基础之上增10,输出a
		 *     在a本身基础之上乘3,输出a
		 *     在a本身基础之上除4,输出a
		 *   声明byte型变量b并赋值为5
		 *     b += 10;-------------------???
		 *     b = b+10;------------------???
		 * 2)声明整型变量age并赋值为22
		 *     输出age=22,输出我今年22岁了
		 * 3)声明整型变量c和d,并分别赋值为5和8
		 *     声明整型变量max并赋值为c和d之中的最大值
		 *     输出max

6.分支结构(if-else if -else)

6.1需求分析
6.2技术分析
  • if语句
  • if-else语句
  • 嵌套if语句
  • if-else-if语句
6.3步骤分析

代码详解

6.4代码实现

王者荣耀段位

//王者荣耀
  /*
   * 三步走:
   * 一.导包:
   * 1.手动导包,java.util.Scanner;
   * 2.红色的小叉叉,系统去修改。
   * 3.快捷方式导包:ctrl+shift+o
   * 二.创建对象
   * 三.接收数据
   */
  
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入你的rank分数,进行段位查询:");
  int rank = sc.nextInt();
  
  if (rank < 50) {
   System.out.println("渣渣");
  }else if(rank >= 50 && rank < 60){
   System.out.println("黄金段位");
  }else if(rank >= 60 && rank < 70){
   System.out.println("铂金段位");
  }else if(rank >= 70 && rank < 80){
   System.out.println("钻石段位");
  }else if(rank >= 80 && rank < 90){
   System.out.println("星耀段位");
  }else if(rank >= 90 && rank < 100){
   System.out.println("最强王者");
  }else{
   System.out.println("无人能挡!");
  }
  sc.close();