day01 - Java基础语法

第一章 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);//11System.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= 1break 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 ~ 99System.out.println(number);}}

练习题

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

太充实了!!!

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

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

相关文章

71、哪吒开发板试用结合oak深度相机进行评测

基本思想:收到intel的开发板-小挪吒,正好手中也有oak相机,反正都是openvino一套玩意,进行评测一下,竟然默认是个window系统,哈哈

鸿蒙媒体开发系列01——资源分类访问

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下方名片&#xff0c;关注公众号&#xff0c;公众号更新更快&#xff0c;同时也有更多学习资料和技术讨论群。 1、概述 应用开发过程中&#xff0c;经常需要用到颜色、字体、间距、图片等资源&am…

Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息

【需求】 使用Element Plus中的el-dialog默认是模态的&#xff08;即它会阻止用户与对话框外部的元素进行交互&#xff09;&#xff0c;对话框弹出时仍然能够在背景页&#xff08;对话框外部的页面部分&#xff09;上进行滚动以及输入框输入信息&#xff0c;且对话框可拖动 【…

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值&#xff08;Bicubic interpolation&#xff09;&#xff0c;又叫双立方插值。在数值分析这个数学分支中&#xff0c;双三次插值是二维空间中最常用的插值方法。在这种方法中&#xff0c;函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…

mybatis开启日志

步骤很详细&#xff0c;直接上教程 配置文件的文件格式可能有所不同&#xff0c;这里列举两种 配置方法 一. application.properties&#xff08;默认 # 配置mybatis的日志信息 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl二. application.y…

基于python+django+vue的在线学习资源推送系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

工程师 - ACPI介绍_2

Advanced Configuration and Power Interface (ACPI) Introduction and Overview Version 1.4 : 26 April 2016 Copyright © 2016 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others. 本章提供了高级配置和电源…

【ACM出版,录用检索快】2024年第四届工商管理与数据科学国际学术会议 (BADS 2024,10月25-27)

2024年第四届工商管理与数据科学国际学术会议(BADS 2024)将于2024年10月25-27日在中国重庆召开&#xff0c;大会由喀什大学支持。 在当今全球化与数字化迅速发展的时代&#xff0c;工商管理与数据科学作为推动经济增长和技术进步的重要力量&#xff0c;正以前所未有的速度交叉融…

ROS学习笔记1.Mapping

为了执行自主导航&#xff0c;机器人必须拥有环境地图。机器人将使用此地图进行许多操作&#xff0c;例如规划轨迹、避开障碍物等。 您可以为机器人提供预先构建的环境地图&#xff08;在极少数情况下&#xff0c;您已经拥有具有正确格式的地图&#xff09;&#xff0c;也可以…

Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯

前言 IM即时通讯聊天, 为软件开发者打造&#xff0c;不依赖第三方sdk&#xff0c;完全用Go语言开发即时通讯服务&#xff0c;支持H5、Electron、Wails 、Uniapp和各种小程序的IM即时通讯, 快速实现私聊、群聊、在线客服&#xff01;让你快速搭建一个微信聊天系统&#xff0c;打…

浅谈住房城乡建设部科技创新平台布局重点方向

最近住房建设部组织开展住房城乡建设部科技创新平台&#xff08;以下简称部科技创新平台&#xff09;申报工作。详细内容见住房城乡建设部科技创新平台开始申报了 (qq.com)。在这里有4大方向共15个课题。内容见下图&#xff1a; 虽然我是做技术的&#xff0c;但是如何体现创新还…

mycat双主高可用架构部署-水评分表-枚举分片配置

MySQL5.7服务器IP是192.168.31.209及192.168.31.210 vi /usr/local/mycat/conf/schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema n…

AI赋能:无人直播新赛道,防封号、不限流,打造24小时流量引擎!

AI赋能&#xff1a;无人直播新赛道&#xff0c;防封号、不限流&#xff0c;打造24小时流量引擎&#xff01; 在数字化浪潮的推动下&#xff0c;直播行业正经历着前所未有的变革。传统直播模式受限于主播的实时参与、时间和地域的局限&#xff0c;难以满足日益增长的多元化需求。…

java技术栈介绍

Java技术栈是一个庞大而丰富的生态系统&#xff0c;它包含了从基础语言特性到高级框架、库和工具的整个集合。这个技术栈为开发者提供了构建各种类型应用&#xff08;包括企业级应用、Web应用、移动应用、大数据应用等&#xff09;所需的全部组件。以下是对Java技术栈的一个更详…

Windows 上下载、编译 OpenCV 并配置系统环境变量的详细步骤

创作不易&#xff0c;您的打赏、关注、点赞、收藏和转发是我坚持下去的动力&#xff01; 在 Windows 上下载并编译 OpenCV&#xff0c;然后配置系统环境变量的步骤如下&#xff1a; 1. 下载 OpenCV 打开 OpenCV 官方下载页面。找到最新的 Windows 版本&#xff0c;点击下载&…

[产品管理-23]:NPDP新产品开发 - 21 - 产品创新中的市场调研 - 市场调研对创新产品开发的意义

目录 前言&#xff1a; 一、市场调研概述 1.1 客户与市场的区别 1、定义与范围 2、关注焦点 3、作用与影响 4、总结 1.2 销售与市场的区别 1、对象与范围 2、工作方式 3、工作内容 4、目标 5、考核标准 6、在企业运营中的角色 1.3 什么是市场调研 1、市场调研的…

[Python]用Nuitka将 Python 脚本打造为独立高效的可执行文件

nuitka --onefile --ltoyes --standalone --show-modules --show-memory --nofollow-import-tomatplotlib --nofollow-import-toscipy --nofollow-import-topygame --nofollow-import-topyarrow --nofollow-import-tosqlalchemy --nofollow-import-topandas PDF信息提取-含界面…

GUI编程13:JDialog弹窗

视频链接&#xff1a;15、JDialog弹窗_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p15&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 package com.yundait.lesson04;import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; im…

双亲委派机制知识点

类加载器 双亲委派模型 为什么采用双亲委派模型 打破双亲委派机制的场景 Tomcat 打破双亲委派机制:目的是可以加载不同版本的jar包 实现类隔离&#xff1a;在Tomcat中&#xff0c;每个Web应用使用独立的类加载器加载类文件&#xff0c;这样做的好处在于&#xff0c;当在同一T…

【自动化测试】移动app的分层测试以及自动遍历的基本概念

引言 移动应用的分层测试是一种系统化的测试方法&#xff0c;它将测试过程分解为不同的层次&#xff0c;以确保应用在每个层面上都符合设计要求和用户期望 文章目录 引言一、移动app的分层测试1.1 单元测试&#xff08;Unit Testing&#xff09;1.2 集成测试&#xff08;Integr…