day01 - Java基础语法

news2024/11/14 14:14:38

第一章 Java概述

  1. 1995年美国Sun推出Java,2009年Sun公司被甲骨文收购

  2. Java之父:詹姆斯·高斯林(James Gosling)

  3. Java编译器将源程序编译成与平台无关的字节码文件(class文件),然后由JVM对字节码文件解释执行。不同操作系统,只需要安装不同的Java虚拟机就可实现Java程序的跨平台

  4. JRE(Java运行环境,用于运行JAVA程序),包含JVM和Java的核心类(Java API)

    JDK(Java开发工具包,用来开发JAVA程序),包含JRE和一些Java开发工具包;JDK有三个版本:JAVA SE(标准版,适用于普通应用程序的开发),JAVA EE(企业版,适用于大型企业级应用程序的开发), JAVA ME(微型版,适用于移动设备或嵌套式设备的程序开发)

5. JDK的安装目录介绍

目录名称说明
bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录(可执行文件)
conf该路径下存放了JDK的相关配置文件
include该路径下存放了一些平台特定的头文件
jmods该路径下存放了JDK的各种模块
legal该路径下存放了JDK各模块的授权文档
lib该路径下存放了JDK工具的一些补充JAR包(java的类库文件)
jre存放java运行环境文件

6. 基础DOS命令

操作说明
盘符名称:盘符切换,如:E:回车,表示切换到E盘。
dir查看当前路径下的内容
cd 目录进入单级目录。cd itheima
cd …回退到上一级目录
cd 目录1\目录2…进入多级目录。cd itheima\JavaSE
cd \回退到盘符目录。
cls清屏
exit退出命令提示符窗口

第二章 你好,世界

1. 为什么配置环境变量

开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。

2. 创建环境变量步骤

新建系统变量JAVA_HOME:C:\Program Files\Java\jdk1.8.0
新建系统变量Path的值:%JAVA_HOME%\lib (注意:点号表示当前目录,不能省略)

3. Java程序开发运行流程

JAVA源程序  ===编译===>  Java 字节码文件  ===执行===>  Java虚拟机(JVM)  ======>  各系统(Windows,Linux等)

4. HelloWorld的编写

4.1 记事本打开新建HelloWorld.java文件,内容如下:
 public class HelloWorld {
 public static void main(String[] args) {
 System.out.println("HelloWorld");
 }
 }
4.2 找到文件所在的文件夹,在地址栏中输入cmd ,编译执行
javac HelloWorld.java
//运行成功,会生成字节码文件HelloWorld.class
java HelloWorld

如图:
在这里插入图片描述

5. HelloWorld案例常见问题

  1. 非法字符问题。Java中的符号都是英文格式的
  2. 大小写问题。Java语言对大小写敏感(区分大小写)
  3. 在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件
  4. 编译命令后的java文件名需要带文件后缀.java
  5. 运行命令后的class文件名(类名)不带文件后缀.class

第三章 Java基础语法

1. 注释

1.1 单行注释

单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字

// 单行注释
1.2 多行注释

多行注释的格式是使用/* 和 */将一段较长的注释包裹起来

/*
多行注释
多行注释
多行注释
*/
1.3 文档注释

文档注释以/** 开始,以**/结束

/**这是文档注释文字**/

2. Java中标识符的组成规则

只能由字母、数字、下划线“_”、美元符号“$”组成,标识符只能是以大小写字母、下划线、$ 作为开头
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)

3. 标识符与关键字的命名约定

包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式
类名:每个单词首字母大写;如DOMarcoPolo
变量名:除首单词外的所有单词首字母大写,如:localValue
常量:常量命名全部大写,单词间用下划线隔开,如:MAX_STOCK_COUNT
关键字:字母全部小写

Java关键字

  1. 常量在程序运行过程中,其值不可以发生改变的量
  2. 标量在程序运行过程中,其值可以发生改变的量
数据类型 变量名 = 初始值;//声明变量并赋值
int age = 18;
数据类型 变量名; 
变量名 = 初始值;  //声明变量并赋值
int age;
age=18;
  1. 可以在一行中定义多个同一类型的变量,但不建议这样使用
int a =10,b=20;

7. 变量使用注意事项

1. 在同一对花括号中,变量名不能重复
2. 变量在使用之前,必须初始化(赋值)
3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围
4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容

8. Java中的基本数据类型

关键字内存占用取值范围
byte1字节-128~127
short2字节-32768~32767
int4字节-(2的31次方)~2的31次方-1
long8字节-(2的63次方)~2的63次方-1
float4字节1.401298e-45 ~ 3.402823e+38
double8字节4.9000000e-324 ~ 1.797693e+308
char2字节0-65535
boolean1字节true,false

注:

1. e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方
2. 在java中整数默认是int类型,浮点数默认是double类型
3. 字符串类型String不属于java的基本数据类型,是引用数据类型
4. 引用数据类型:在Java中,引用数据类型指向一个对象,该对象的类型就是引用数据类型,对象、数组都是引用数据类型,简单理解类就是引用数据类型

9. 类型转换

数据范围小的数值或变量赋值给数据范围大的变量。这种转换是自动的(自动转换

double a = 1;
System.out.println(a);

数据范围大的数值或变量赋值给数据范围小的变量。这种转换需要强制转换格式(强制转换
强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量

double a = (double)1;
System.out.println(a);

注:

1. char类型的数据转换为int类型是按照码表中对应的int值进行计算的。比如在ASCII码表中,'a'对应97
2. 整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型
3. boolean类型不能与其他基本数据类型相互转换

第四章 Java运算符

1. 算术运算符

通常的简单的数值计算
算术运算符

 public static void main(String[] args) {
        int a = 10;
        System.out.println(a+++1);//11
        System.out.println(++a+1);//13
    }

2. 关系运算符

用于大小等关系比较的运算符为关系运算符,一般比较的结果为布尔类型
关系运算符

3. 赋值运算符

运算结果赋值给一个新的变量
赋值运算符

4. 逻辑运算符

把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否
成立
逻辑运算符

5. 短路逻辑运算符

在这里插入图片描述

6. 三元运算符

格式:关系表达式 ? 表达式1 : 表达式2

public static void main(String[] args) {
        int a = 10;
        System.out.println(a==1?11:22);//22
    }

第五章 Java条件语句

1. if条件判断语句

if语句用于条件判断,所以括号内为判定条件,结果应为布尔类型

public static void main(String[] args) {
        int a = 10;
        if(a == 10){
            System.out.println(a);//10
        }
    }

2. if…else语句

if…else 语句用于条件判断,当if判定为false的时候,会执行else中的内容

public static void main(String[] args) {
        int a = 11;
        if(a == 10){
            System.out.println(a);
        }else {
            System.out.println("a:"+a);//a:11
        }
    }

3. if…else if…多条件判断语句

符合if中的条件就执行if大括号中的代码,否则是否满足else if中的条件,是就执行大括号中的代码,否则就执行else中的条件,由于过多的使用if else if会影响代码的阅读等,所以不建议使用超过4层

    public static void main(String[] args) {
        int a = 1;
        if(a == 20){
            System.out.println(a);
        }else if(a == 15){
            System.out.println("a:"+a);
        } else if (a == 10) {
            System.out.println("a1: "+a);
        } else if (a == 5) {
            System.out.println("a2: "+a);
        }else {
            System.out.println("a3: "+a);//a3: 1
        }
    }

4. switch case语句

switch case 语句判断一个变量与一系列值中某个值是否相等,而每个值称为一个分支

public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 5:
                System.out.println("要放假了!!");
                break;
            case 6:
                System.out.println("放假第一天!!");
                break;
            case 7:
                System.out.println("放假最后一天!!");
                break;
            default:
                System.out.println("上班中!!");//上班中!!
                break;
        }
    }
  • switch语句中的变量类型可以是:byte、short、int或者char,在Java SE7开始,支持字符串 String类型
  • case语句中值的数据类型必须与变量的数据类型相同,而且只能是常量或字面量
  • 当变量值与case语句的值相等时,那么就从该case语句开始执行,直到遇见break语句才会跳出
  • switch可以包含一个default分支,一般是最后一个分支(可以存在于任何位置),在没有匹配的case语句的时候,会默认执行default分支

第六章 Java循环语句

1. while循环语句

当循环判定为true时,执行循环体,否则跳出(结束)循环
语法结构

while(布尔表达式){
	//循环内容
}
public static void main(String[] args) {
        int a = 10;
        while (a< 20){
            System.out.println(a);
            a++;
        }
    }

结果:打印10~19

2. do…while循环语句

do … while循环和while循环类似;不同的地方是do…while循环会先执行一次在判定;而while会先判定在执行,所以do…while循环至少会执行一次,而while循环可能一次也不会执行
语法结构

do{
	//代码语句
}while(布尔表达式);
 public static void main(String[] args){
 int x = 10;
 do{
 System.out.print("value of x : " + x );
 x++;
 System.out.print("\n");
 }while( x < 20 );
 }

3. for循环语句

语法结构

for(初始化值;布尔表达式;值更新){
	//循环体代码
}
public static void main(String[] args) {
        for (int i=1;i<=100;i++){
            System.out.println(i);
        }
    }

结果:打印1~100

4. 增强型for循环语句

语法结构

for(声明语句:表达式){
	//代码句子
}
    public static void main(String[] args) {
        int[] nums = {1,2,3,4,5,6,7,8,9};
        for (int i:nums){
            System.out.println(i);
        }
    }

结果:打印1~9

第七章 跳转控制语句

1. break关键字

break关键字主要用在循环语句或者 switch 语句中,用来跳出整个语句块
break 跳出最里层的循环,并且继续执行该循环结束后的语句

    public static void main(String[] args) {
        int[] nums = {1,2,3,4,5,6,7,8,9};
        for (int i:nums){
            System.out.println(i);
            if(i == 5){
                break;
            }
        }
    }

结果:打印1~5
如何跳出多重嵌套循环?

    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        flag:
        for (int i : nums) {
            for (int j = 1; j < 9; j++) {
                if (j == i) {
                    System.out.println("i= " + i + "j= " + j);//i= 1j= 1
                    break flag;
                }
            }
        }
    }

2. continue关键字

continue 适用于任何循环控制结构中。作用是跳过本次循环,继续下一次循环

    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        for (int i : nums) {
            if(i%3==0){
                continue;
            }
            System.out.print(i+" ");//1 2 4 5 7 8 
        }
    }

第八章 常用类

Scanner

一个可以解析基本类型和字符串的简单文本扫描器。
例如,以下代码使用户能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in);
 int i = sc.nextInt();

备注:System.in系统输入指的是通过键盘录入数据。

使用步骤:

//导包
import java.util.Scanner;
 //导包的动作必须出现在类定义的上边
//创建对象
Scanner sc = new Scanner(System.in);

代码示例:

//1. 导包
import java.util.Scanner;
 public class Demo01_Scanner {
 public static void main(String[] args) {
 //2. 创建键盘录入数据的对象
Scanner sc = new Scanner(System.in);
 //3. 接收数据
System.out.println("请输入一个整数:");
 int i = sc.nextInt();
 //4. 输出数据
System.out.println("i:"+i);
 }
 }

Random

Random跟Scanner一样,也是Java提前写好的类,我们不需要关心是如何实现的,只要直接使用就可以了。

使用步骤:

//导包
import java.util.Random;
 //导包的动作必须出现在类定义的上边。
//创建对象
Random r = new Random ();
 //上面这个格式里面,只有r是变量名,可以变,其他的都不允许变
//生成随机数
int number = r.nextInt(随机数的范围);

上面这个格式里面,只有number是变量名,可以变,其他的都不允许变。
随机数范围的特点:从0开始,不包含指定值。比如:参数为10,生成的范围[0,10)

代码示例:

//1.导包
import java.util.Random;
 public class RandomDemo1 {
 public static void main(String[] args) {
 //2.创建对象
Random r = new Random();
 //3.生成随机数
int number = r.nextInt(100);//包左不包右,包头不包尾
//0 ~ 99
 System.out.println(number);
 }
 }

练习题

一、完成一个猜数字大小游戏
设计思路:
1. 程序中自动生成一个1100之间的随机整数A
2. 玩家循环在控制台中输入1100之间的任意数B,然后程序会显示以下内容
如果输入数字B 小于 整数A 则控制台中显示【你猜的数字太小了】进行提示
如果输入数字B 大于 整数A 则控制台中显示【你猜的数字太大了】进行提示
如果输入数字B 等于 整数A 则控制台中显示【恭喜你猜对了】进行提示
二、使用循环语句打印出1~100的奇数和与偶数和

太充实了!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】多态,要这样学

&#x1f680;个人主页&#xff1a;奋斗的小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言&#x1f4a5;1、多态的定义和实现&#x1f4a5;1.1 什么是多态&#x1f4a5;1.2 多态的定义和实现&…

杨氏矩阵中查找想要找到的数

文章目录 一、题目二、思路三、代码实现 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目 二、思路 第一步 根据杨氏矩阵的规则说明矩阵从左到右递增&#xff0c;从上往下递增&#xff0c;因此我们可以画出这样的图。 对于杨氏矩阵&#xff0…

java面向对象:构造方法

给出javabean类代码 package google.test5;public class Student {private String name;private int age;public Student(){System.out.println("看看我打印了嘛&#xff1f;");}public Student(String name, int age){this.name name;this.age age;}public void …

Vue路由二(嵌套多级路由、路由query传参、路由命名、路由params传参、props配置、<router-link>的replace属性)

目录 1. 嵌套(多级)路由2. 路由query传参3. 路由命名4. 路由params传参5. props配置6. <router-link>的replace属性 1. 嵌套(多级)路由 pages/Car.vue <template><ul><li>car1</li><li>car2</li><li>car3</li></ul…

进程启动和进程终止

文章目录 进程程序进程进程ID进程表项C程序的启动过程启动例程进程终止atexit函数示例--终止函数的执行流程以及多种进程终止方式的对比 进程启动和退出流程图查看系统中的进程 进程 程序 程序是存放在磁盘文件中的可执行文件。当代码进行编辑保存后使用gcc等编译工具进行编译…

【机器学习】OpenCV入门与基础知识

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 OpenCV入门与基础知识简介安装与环境配置WindowsLinuxmacOS 核心数据结构MatSca…

Linux:进程状态和优先级

一、进程状态 1.1 操作系统学科&#xff08;运行、阻塞、挂起&#xff09; 为了弄明白正在运行的进程是什么意思&#xff0c;我们需要知道进程的不同状态 大多数操作系统都遵循以下原则 1.1.1 运行状态 因为有一个调度器需要确保CPU的资源被合理使用&#xff0c;所以需要维护…

【C++】学完c语言后的c++基础知识补充!(命名空间、输入和输出、缺省函数、函数重载、引用、内联函数代替宏、nullptr代替NULL)

一. 命名空间 1. 定义 出现的意义&#xff1a;解决各种函数、关键词和类的名称冲突问题。 定义方式&#xff1a;namespace 命名空间的名字 { } &#xff08;注意&#xff01;}后面不加&#xff1b;&#xff09; namespace 是关键词命名空间的…

CenterNet官方代码—目标检测模型推理部分解析与项目启动

CenterNet模型推理部分解析 CenterNet官方代码环境部署 CenterNet作为2019年CVPR推出的论文&#xff0c;论文中给出了官方代码所在的github仓库地址。https://github.com/xingyizhou/CenterNet。 整个代码的代码量并不是特别大&#xff0c;但整个项目的难点在于使用了老版本的…

横向移动-WMI

什么是WMI? WMI是基于 Web 的企业管理 (WBEM) 的 Windows 实现&#xff0c;WBEM 是跨设备访问管理信息的企业标准。 WBEM&#xff08;Web-Based Enterprise Management&#xff09;是一个开放标准&#xff0c;用于跨平台和跨设备的管理信息访问。WMI&#xff08;Windows Mana…

VMware Fusion虚拟机Mac版 安装Win10系统教程

Mac分享吧 文章目录 Win10安装完成&#xff0c;软件打开效果一、VMware安装Windows10虚拟机1️⃣&#xff1a;准备镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;虚拟机设置4️⃣&#xff1a;安装虚拟机&#xff08;步骤和Win11安装步骤类似&#xff0c;此处相同步骤处没换…

C++从入门到起飞之——继承下篇(万字详解) 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1、派⽣类的默认成员函数 1.1 四个常⻅默认成员函数 1.2 实现⼀个不能被继承的类 ​编辑 2. 继承与友…

词嵌入(二):基于上下文窗口的静态词嵌入(从NNLM、CW模型谈到基于层次Softmax、负采样的Word2Vec模型)

文章目录 一、经典神经语言模型&#xff08;A Neural Probabilistic Language Model&#xff09;二、C&W模型 (Collobert and Weston, 2008)2.1 文章背景2.2 模型架构&#xff08;词向量的表示&#xff09;2.2.1 Lookup-Table Layer&#xff08;查找表&#xff09;2.2.2 TD…

STM32关于keil使用过程中遇到的问题

1.设备管理器STlink驱动确认安装完成&#xff0c;但是keil里一直识别不到&#xff0c;换下载器也没用 &#xff08;1&#xff09;问题描述 我的问题是这样产生的&#xff1a;之前用标准库开发STM32的时候&#xff0c;STLink能够正常使用&#xff0c;然后使用HAL库开发的时候出…

仓储管理系统的设计与实现SSM框架

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

electron react离线使用monaco-editor

目录 1.搭建一个 electron-vite 项目 2.安装monaco-editor/react和monaco-editor 3.引入并做monaco-editor离线配置 4.react中使用 5.完整代码示例 6.monaco-editor离线配置官方说明 7.测试 1.搭建一个 electron-vite 项目 pnpm create quick-start/electron 参考链接…

React学习day06-异步操作、ReactRouter的概念及简单使用

13、续 &#xff08;8&#xff09;异步状态操作 1&#xff09;在子仓库中 ①创建仓库 ②解构需要的方法 ③安装axios ④封装并导出请求 ⑤在reducer中为newsList赋值 ⑥获取并导出reducer函数 2&#xff09;在入口文件index.js中&#xff0c;注入 3&#xff09;在App.js中&a…

Vue.js入门系列(二十九):深入理解编程式路由导航、路由组件缓存与路由守卫

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

爬虫--翻页tips

免责声明&#xff1a;本文仅做分享&#xff01; 伪线程 from DrissionPage import ChromiumPage import timepage ChromiumPage() page.get("https://you.ctrip.com/sight/taian746.html") # 初始化 第0页 index_page 0# 翻页点击函数 sleep def page_turn():page…

【Linux修行路】网络套接字编程——UDP

目录 ⛳️推荐 前言 六、Udp Server 端代码 6.1 socket——创建套接字 6.2 bind——将套接字与一个 IP 和端口号进行绑定 6.3 recvfrom——从服务器的套接字里读取数据 6.4 sendto——向指定套接字中发送数据 6.5 绑定 ip 和端口号时的注意事项 6.5.1 云服务器禁止直接…