【Java基础】2、Java基础语法

news2024/11/28 14:34:52

f2/fn+f2:选中点中的文件名

​​​​​​​

1.注释

为什么要有注释?

给别人和以后的自己可以看懂的解释

注释含义

注释是在程序指定位置的说明性信息;简单理解,就是对代码的一种解释

注释分类

单行注释

//注释信息

多行注释

/*注释信息*/

文档注释

/**注释信息*/

(文档注释暂时用不到)

public class HelloWorld{
	//mian方法,表示程序的主入口
	public static void main(String[] args){
		//输出语句(打印语句)
		/*会把小括里面的内容
		进行输出打印*/
		System.out.println("你好,世界");
	}
}

编译没有问题,证明代码的语法没有问题

注释的使用细节

  1. 注释的内容不参与编译,也不参与运行,仅仅是对代码的解释说明(注释只在java文件中存在,编译成class文件就不存在了)
  2. 单行注释//可以嵌套注释(但不要);多行注释/**/不可以嵌套注释(多行注释会把/*匹配到的第一个*/作为结束)

2.关键字

什么是关键字

被java赋予特定含义的英文单词

关键字的特点

  1. 关键字的字母全部小写
  2. 常用的代码编辑器,针对不同的关键字有特殊的颜色标记,非常直观

class关键字的含义

class用于创建(定义)一个类,后面跟随类名

class 类名{类的范围}

类:是Java最基本的组成单元

3.字面量

告诉程序员:数值在程序中的书写格式

有的地方称之为:常量、字面值常量

字面量的分类

整数、小数、字符串(“”)、字符(‘’)、布尔(true、false)、空(“null”)

null不能直接打印,打印null用字符串的形式打印

public class ValueDemo1{//类名要和.java文件名保持一致
	//mian方法,表示程序的主入口
	public static void main(String[] args){
		//常见的数据在代码中是如何书写的
		//整数
		System.out.println(666);
		System.out.println(-777);
		
		//小数
		System.out.println(1.93);
		System.out.println(-3.71);
		
		//字符串
		System.out.println("程序员");
		System.out.println("Chan");
		
		//字符
		System.out.println('男');
		System.out.println('女');
		
		//布尔
		System.out.println(true);
		System.out.println(false);
		
		//空
		//null不能直接打印,打印null用字符串的形式打印
		System.out.println("null");
	}
}

4.特殊字符

'\t'        '\r'        '\n'        ...

\t 制表符

在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。最少补1个空格,最多补8个空格。

让内容在上下是对齐的(一般在一行中的中间部分使用)

public class ValueDemo1{//类名要和.java文件名保持一致
	//mian方法,表示程序的主入口
	public static void main(String[] args){
		System.out.println("name"+'\t'+"age");
		System.out.println("tom"+'\t'+"23");
	}
}

5.变量

变量定义

在程序的执行过程中,其值有可能发生改变的量(数据)

变量的使用场景

  1. 重复使用某个值
  2. 某个数据经常发生改变

当某个数据经常发生改变时,我们可以用变量存储。当数据变化时,只要修改变量里面记录的值即可。

变量的定义格式

数据类型 变量名 = 数据值;

数据类型:为空间中存储的数据,加入类型限制

变量名:为空间起的名字

数值:存在空间里面的数值

;表示语句的结束

public class VariableDemo1{
	public static void main(String[] args){
		//定义变量
		//数据类型 变量名 = 数据值;
		//数据类型:限定了变量能存储数据的类型
		//int(整数) double(小数)
		//变量名:就是存储空间的名字
		//作用:方便以后使用
		//数据值:真正存在变量中的数据
		//等号:赋值。把右边的数据赋值给左边的变量
		
		int a=10;
		System.out.println(a);
	}
}

变量的使用方式

  1. 输出打印
  2. 参数与计算
  3. 修改变量记录的值(变量同时只能记录一个值)
public class VariableDemo2{
	public static void main(String[] args){
		//基本用法
		//1.定义变量,再进行输出
		int a=10;
		System.out.println(a);//10
		System.out.println(a);//10
		System.out.println(a);//10
		
		//2.变量参与计算
		//int a=10变量的名字不能重复
		int b=10;
		int c=20;
		System.out.println(b+c);
		
		//3.修改变量记录的值
		a=50;
		System.out.println(a);//50
	}
}

变量的注意事项

1.只能存一个值

2.变量名不允许重复定义

3.一条语句可以定义多个变量(中间用“,”隔开)

public class VariableDemo2{
	public static void main(String[] args){
		//变量的注意事项
		//在一条语句中,可以定义多个变量
		int d=100,e=200,f=300;
		System.out.println(d);
		System.out.println(e);
		System.out.println(f);
	}
}

4.变量再使用之前一定要进行赋值

没有赋值的变量是不能使用的,赋值和打印顺序也是很重要的

public class VariableDemo2{
	public static void main(String[] args){
		int g;
		System.out.println(g);//这样打印是错误的
	}
}
public class VariableDemo2{
	public static void main(String[] args){
		int g;
		System.out.println(g);//这样打印是错误的
        g=500;//在打印(使用)之前赋值也是不行的
	}
}
public class VariableDemo2{
	public static void main(String[] args){
		
		//变量在使用之前必须要赋值
		int g;//定义
		g=500;//赋值
		//建议:以后在定义变量的时候,请直接赋值,不要把定义和赋值分开
		System.out.println(g);
	}
}

5.变量的作用域范围

变量的练习

public class VariableTest{
	public static void main(String[] args){
		//一开始没有乘客
		int count = 0;
		//第一站:上去一位乘客(在原有的基础上+1)
		//先计算等号右边的,计算好之后,赋值给等号左边
		count = count+1;
		//System.out.println(count);
		//第二站:上去两位乘客,下来一位乘客
		count = count + 2 - 1;
		//第三站:上去两位乘客,下来一位乘客
		count = count + 2 - 1;
		//第四站:下来一位乘客
		count = count -1;
		//第五站:上去一位乘客
		count = count + 1;
		//请问:到了终点,车上一共几位乘客
		System.out.println(count);
	}
}

6.进制

6.1十进制

十进制 0 1 2 3 4 5 6 7 8 9 

逢十进一

借一当十

十进制的运算过程

6.2二进制

逢二进一

借一当二

二进制的运算过程

十进制中的0——二进制中的0

十进制中的1——二进制中的1

十进制中的2——二进制的中10

十进制中的3——二进制的中11

十进制中的4——二进制的中100

6.3常见的进制

二进制:由0和1组成,代码中以0b开头

十进制:由0~9组成,前面不加任何前缀

八进制:由0~7组成,代码中以0开头

十六进制:由0~9还有a~f组成,代码中以0x开头

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [a] [b] [c] [d] [e] [f]

(以上的规则是JDK7以上的特性)

在以前计算机区分的是用孔和没孔,现在是区分0和1

6.4进制之间的转换

公式:系数*基数的权次幂 相加

6.4.1任意进制转十进制

系数:每一位上的数

基数:当前进制数(几进制就是几)        //基数要是对应进制范围之内的数字

权:从右往左,一次为0 1 2 3 4 5 ...

二进制转十进制

8421快速转换法

每一位二进制值的1都是代表一个固定数值

把每一位的1代表的十进制数加起来得到的结果就是它所代表的十进制数。

6.4.2十进制转任意进制

除基取余法

不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来

6.5小结

7.计算机的存储规则

在计算机中,任意数据都是以二进制的形式来存储的

(任何进制都是转成二进制再进行存储)

7.1计算机中的数据

7.1.1Text文本数据

数字:转换成二级制

字母:查询对应的ASCII码表,找到对应的数字,再转换成二进制

汉字:查询对应的码表,找到对应的数字,再转换成二进制

  1. GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个汉字。
  2. BIG5编码:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。
  3. GBK编码:2000年3月17日发布,收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。
  4. Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

7.1.2Image图片数据

通过每个像素中的RGB三原色来存储

2K屏、4K屏(这说的是最大分辨率)

黑白图

灰度图

彩色图

用0-255*255*255表示颜色的数据

三原色

255——1111 1111——FF

  1.  计算机中的颜色采用光学三原色。
  2. 分别为:红,绿,蓝。也称之为RGB
  3. 可以写成十进制形式。(255,255,255)
  4. 也可以写成十六进制形式。(FFFFFF)

7.1.3Sound声音数据

声音的波形进行采样再存储

氪金:和红色的波形一样,听到的音质是和原本的声音一致的

不氪金:只是按照黑点的走向去画,不一定是什么样子

视频是很多图片和声音的组合体

8.数据类型

数据类型 变量名 = 数据值;

8.1基本数据类型

(4类,8种)

byte的取值范围是:-127-128

整数和小数取值范围大小关系:double>float>long>int>short>byte

long类型变量:需要加入L标识(大小写都可以,推荐大写)

float类型变量:需要加入F标识(大小写都可以,推荐大写)

long类型变量在定义的时候,要在后面加上L

public class VariableDemo3{//类名一定要和文件名保持一致
	//主入口
	public static void main(String[] args){
		//整数
		//byte
		byte b = 10;//-128-127
		System.out.println(b);
		//short
		short s = 20;
		System.out.println(s);
		//int
		int i=30;
		System.out.println(i);
		//long
		//如果要定义long类型的变量
		//再数据值的后面需要加一个L作为后缀
		//L可以是大写的也可以是小写的(建议大写)
		long n = 999999999L;
		System.out.println(n);
		
		//float
		//定义float类型的变量的时候
		//数据值也需要加上一个F作为后缀
		float f = 10.1F;
		System.out.println(f);
		
		//double
		//定义double类型的变量的时候不需要加后缀
		double d=20.2;
		System.out.println(d);
		
		//char		
		char c ='中';
		System.out.println(c);
		
		//boolean
		//true false
		boolean o =true;
		System.out.println(o);
		
	}
}

数据类型练习

练习一

public class VariableTest2{
	public static void main(String[] args){
		//定义变量记录姓名
		String name = "张三";
		//定义变量记录年龄
		int age = 18;
		//定义变量记录性别
		char gender = '男';
		//定义变量记录身高
		double height = 180.1;
		//定义变量记录是否单身
		//true是单身,false不是单身
		boolean flag = true;
		//输出变量的值
		System.out.println(name);
		System.out.println(age);
		System.out.println(gender);
		System.out.println(height);
		System.out.println(flag);
	}
}

练习二

public class VariableTest3{
	public static void main(String[] args){
		//定义变量记录电影的名字
		String name = "送初恋回家";
		//定义变量记录主演的名字
		String tostar = "刘鑫 张雨提 高媛";
		//定义变量记录电影的年份
		int year = 2020;
		//定义变量记录主演的评分
		double grade = 9.0;
		
		//输出所有变量的值
		System.out.println(name);
		System.out.println(tostar);
		System.out.println(year);
		System.out.println(grade);
	}
}

8.2引用数据类型

(会在后面学习数组和面向对象的时候学到)

9.标识符

(所对应的就是变量名)

什么是标识符

标识符:给类、方法、变量等起的名字

阿里巴巴规范

标识符命名规则

硬性要求

  1. 由数字、字母、下划线(_)和美元($)组成
  2. 不能以数字开头
  3. 不能是关键字
  4. 区分大小写

软性建议

小驼峰命名法:方法名、变量

标识符是一个单词的时候,全部小写——name

标识符由多个单词组成的时候,第一个的那次首字母小写,其他单词首字母大写——firstName

大驼峰命名法:类名

标识符是一个单词的时候,首字母大写——Student

标识符由多个单词组成的时候,每个单词的首字母大写——GoodStudent

10.键盘录入

Scanner

Java帮我们写好一个类叫Scanner,这个类就可以接收键盘输入的数字

Scanner使用步骤

以下介绍的,只能接收整数

1.导包——Scanner这个类在哪

import java.util.Scanner;        //导包的动作必须出现在类定义的上边

2.创建对象——表示我要开始用Scanner这个类了

Scanner sc = new Scanner(System.in);       

//这个格式里面,只有sc是变量名,可以变,其他的都不允许变

3.接收数据——真正开始干活

int i = sc.nextInt();        //这个格式李里面,只有i是变量名,可以变,其他的都不允许变

//1.导包,找到Sacnner这个类在哪
//书写要注意,写在类定义的上面
//导包的末尾要用;结束
import java.util.Scanner;

public class ScannerDemo1{
	public static void main(String args[]){
		//2.创建对象,表示准备要用Scanner这个类
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入整数:");
		//3.接收代码
		//sc.nextInt():键盘输入什么就接收什么,再赋值给左边的变量
		//变量i记录了键盘录入的数据
		int i = sc.nextInt();
		System.out.println(i);
	}
}

Scanner练习

键盘输入数字并求和

需求:键盘录入两个整数,求出他们的和并打印出来

//1.导包
//书写要注意,写在类定义的上面
//导包的末尾要用;结束
import java.util.Scanner;

public class ScannerTest{
	public static void main(String args[]){
		//2.创建对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个数字:");
		//3.接收数据
		int number1 = sc.nextInt();
		
		System.out.println("请输入第二个数字:");
		//再次接收第二个数据
		int number2 = sc.nextInt();
		
		System.out.println(number1+number2);
	}
}

11.IDEA

IDEA概述

Intellij IDEA

IDEA全称Intellij IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发的最好额工具

集成环境:把代码、编译、执行、调试等多种功能综合到一起的开发工具

IDEA下载和安装

下载:https://www.jetbrains.com/idea/

安装:傻瓜式安装,建议修改安装路径

IDEA中的第一个代码

IDEA项目结构介绍

project(项目)

        module(模块)

                package(包)

                        class(类)

多级包用“.”隔开

运行代码

控制台

IDEA基本设置

修改主题(写代码的背景颜色)

修改代码的字体

修改注释的颜色

 设置自动导包

√上Add...和Optimize..

设置IDEA在提示的时候忽略大小写

去掉Match Case前面的√

给IDEA的背景设置成图片

点击Background Image选择要设置图片的位置

IDEA的项目和模块操作

类的操作

新建类

删除类

修改类名

文件名和类名要保持一致

Shift+F6

模块的操作

新建模块

file--Project Structure--module--+--Java--Next--模块名字--finish

删除模块(后续讲)
修改模块(后续讲)
导入模块(后续讲)

项目的操作

关闭项目

新建项目

打开项目(后续讲)

修改项目(后续讲)

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

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

相关文章

Spring Boot 应用开发概述

目录 Spring Boot 应用开发概述 Spring Boot 的核心特性 Spring Boot 的开发模式 Spring Boot 在企业应用开发中的优势 结论 Spring Boot 应用开发概述 Spring Boot 是由 Pivotal 团队开发的一个框架,基于 Spring 框架,旨在简化和加速基于 Spring …

微信小程序 - 动画(Animation)执行过程 / 实现过程 / 实现方式

前言 因官方文档描述不清晰,本文主要介绍微信小程序动画 实现过程 / 实现方式。 实现过程 推荐你对照 官方文档 来看本文章,这样更有利于理解。 简单来说,整个动画实现过程就三步: 创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的 export 方法…

docker的安装配置与基本简单命令

目录 1.docker简介 2.docker安装 2.1使用root用户登陆 更新yum源 2.2安装依赖 2.3设置yum源 更新yum源索引 2.4安装docker 2.5启动并且设置开机自启动 2.6验证安装是否成功 2.7配置docker加速器 2.8重启docker服务 3.docker简单使用 3.1下载镜像 3.2列出…

【Spring】Cookie与Session

💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 一、Cookie是什么? Cookie的存在主要是为了解决HTTP协议的无状态性问题,即协议本身无法记住用户之前的操作。 "⽆状态" 的含义指的是: 默认情况…

论文略读:Can We Edit Factual Knowledge by In-Context Learning?

EMNLP 2023 第一个探索in-context learning在语言模型知识编辑方便的效果 传统的知识编辑方法通过在包含特定知识的文本上进行微调来改进 LLMs 随着模型规模的增加,这些基于梯度的方法会带来巨大的计算成本->论文提出了上下文知识编辑(IKE&#xff0…

WebGL 添加背景图

1. 纹理坐标(st坐标)简介 ST纹理坐标(也称为UV坐标)是一种二维坐标系统,用于在三维模型的表面上精确地定位二维纹理图像。这种坐标系统通常将纹理的左下角映射到(0,0),而右上角映射到(1,1)。 S坐标&#x…

基于Multisim的可编程放大电路设计与仿真

74LS279(RS触发器),结合开关,将输出接入74LS163实现的8位计数器的时钟端,每拨动两次开关K,将产生一个脉冲信号,计数器将加一,产生的结果为000,001,010,011,100,101,110,111&#xff…

面试经典 150 题.P26. 删除有序数组中的重复项(003)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int removeDuplicates(int[] nums) …

并发编程(2)——线程管控

目录 二、day2 1. 线程管控 1.1 归属权转移 1.2 joining_thread 1.2.1 如何使用 joining_thread 1.3 std::jthread 1.3.1 零开销原则 1.3.2 线程停止 1.4 容器管理线程对象 1.4.1 使用容器 1.4.2 如何选择线程运行数量 1.5 线程id 二、day2 今天学习如何管理线程&a…

5个可替代Gamma的国产ppt软件推荐!职场办公不要太简单!

Gamma ppt是海外一款非常受欢迎的ai做ppt软件,这款软件上线的时间不长,却在短时间内收获了众多用户的好评和资本市场的青睐。 对国内用户而言,Gamma PPT在国内虽然可以使用,但是由于其站点架设在海外,访问时往往存在延…

2024年9月电子学会青少年软件编程Python等级考试(三级)真题试卷

2024年9月青少年软件编程Python等级考试(三级)真题试卷 选择题 第 1 题 单选题 以下python表达式的值为True的是?( ) A.all( ,1,2,3) B.any([]) C.bool(abc) D.divmod(6,0) 第 2 题 单选题 下列python代码的…

数据结构与算法-21算法专项(中文分词)(END)

中文分词 搜索引擎是如何理解我们的搜索语句的? mysql中使用 【like “%中国%”】,这样的使用方案 缺点1:mysql索引会失效缺点2:不能模糊,比如我搜湖南省 就搜不到湖南相关的 1 trie树 Trie树,又称前缀树…

【日志】力扣13.罗马数字转整数 || 解决泛型单例热加载失败问题

2024.10.28 【力扣刷题】 13. 罗马数字转整数 - 力扣(LeetCode)https://leetcode.cn/problems/roman-to-integer/description/?envTypestudy-plan-v2&envIdtop-interview-150这题用模拟的思想可以给相应的字母赋值,官方的答案用的是用一…

超好玩又简单-猜数字游戏(有手就行)

云边有个稻草人-CSDN博客 我的个人主页 目录 云边有个稻草人-CSDN博客 前言 猜数字游戏的游戏要求 1. 随机数的生成 1.1 rand 1.2 srand 1.3 time 1.4 设置随机数的范围 2. 猜数字游戏实现 2.1 游戏实现基本思路 2.2 代码实现 Relaxing Time! —————————…

微信小程序25__实现卡片变换

先看效果图 实现代码如下&#xff1a; <view class"page" style"filter:hue-rotate({{rotation}}deg)"><view class"prev" catchtap"toPrev">《《《</view><view class"next" catchtap"toNext&q…

git下载和配置

git是什么&#xff1f; Git是一种分布式版本控制系统&#xff0c;用于跟踪文件的变化&#xff0c;尤其是源代码。它允许多个开发者在同一项目上进行协作&#xff0c;同时保持代码的历史记录。Git的主要特点包括&#xff1a; 分布式&#xff1a;每个开发者都有项目的完整副本&a…

前端自学资料(笔记八股)分享—CSS(4)

更多详情&#xff1a;爱米的前端小笔记&#xff08;csdn~xitujuejin~zhiHu~Baidu~小红shu&#xff09;同步更新&#xff0c;等你来看&#xff01;都是利用下班时间整理的&#xff0c;整理不易&#xff0c;大家多多&#x1f44d;&#x1f49b;➕&#x1f914;哦&#xff01;你们…

无人机避障——4D毫米波雷达Octomap从点云建立三维栅格地图

Octomap安装 sudo apt-get install ros-melodic-octomap-ros sudo apt-get install ros-melodic-octomap-msgs sudo apt-get install ros-melodic-octomap-server sudo apt-get install ros-melodic-octomap-rviz-plugins # map_server安装 sudo apt-get install ros-melodic-…

SLAM|2. 差异与统一:坐标系变换与外参标定

本章主要内容 1.坐标系变换 2.相机外参标定 上一章我们了解了相机内参的概念&#xff0c;内参主要解决三维世界与二维图像之间的映射关系。有了内参我们可以一定程度上还原相机看到了什么&#xff08;但缺乏尺度&#xff09;。但相机看到的数据只是处于相机坐标系&#xff0c;为…

Solidworks二次开发 获取装配体里面组件列表以及名称

******************************************************************************从装配体里面获取组件******************************************************************************Option Explicit 强制在模块级别显式声明所有变量 *********************定义SOLIDWOR…