当前位置: 首页 > news >正文

3.Java入门笔记--基础语法

1.字面量

概念:计算机用来处理数据的,字面量就是告诉程序员数据在程序中的书写格式

常用数据:整数,小数直接写;字符单引号('A')且只能放一个字符;字符串双引号("Hello")内容可以为多个字符;布尔值true和false;空值:null。

2.变量

格式:

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

变量指内存中的一块区域,相当于盒子,里面装的数据可以变化。

变量的应用场景:对数据进行处理就很方便。例如:

//钱包里有9.5元,收到了10元红包,又发出去5元,请输入各阶段红包情况
double money = 9.5;//钱包
//收到10元money = money + 10;
System.out.println(money);//此时输出19.5
//发出去5元
money = money - 5;
System.out.println(money);//此时输出14.5

3.关键字、标识符

关键字:Java语言自己用到的一些词,有特殊的作用,如:public、class、int等等。所以关键字是我们不能用来作为类名、变量名。

标识符:编写程序的名字,像类名、变量名等都是标识符。

        基本组成:数字、字母、下划线、美元符等

        要求:不能以数字开头、不能用关键字作为名字、区分大小写。

4.存储知识补充

数字存储

  • 计算机中表示数据的最小单元:一个字节(byte,简称B,是使用8个二进制位组成的)
  • 字节中的每个二进制位就称为位(bit,简称b),1B=8b。

字符存储

  • ASCLL编码:将字符对应数字再在电脑中存储。

图片存储

  • 图片是由无数个像素点组成的
  • 每个像素点的数据用0~255*255*255表示其颜色

声音存储:

  • 声波对应频率数据再转换为2进制

5.数据类型

总体分两类:基本数据类型引用数据类型

基本数据类型

4大类:整型、浮点型、字符型、布尔型

8种:byte、short、int、long;float、double;char;boolean

package jmpro1;public class lip1 {public static void main(String[] args) {//目标:掌握基本数据类型的使用//1.byte short int longbyte a = 127;//范围-128到127//byte a2 = 128;//越界了short s = 13244;//短整型//short s1 = 93244;//越界了int i = 422424;//注意:随便写一个整型字面量默认是int类型的42222222461虽然没有超过long的范围,但是超过了int的范围//如果希望随便写一个整型字面量默认是long类型,需要在后面加上L/llong lg = 42222222461L;//2.float double //注意:随便写一个小数字面量默认是double类型的//如果希望随便写字面量默认是float类型,需要在后面加上F/ffloat f = 3.14F;//3.char 字符型char ch='a';//4.booleanboolean flag = true;boolean flag1 = false;//引用数据类型,后面要用//String 称为字符串类型,定义的变量可以用于记住一个字符串数据。String name = "张三";System.out.println(name);}
}

6.类型转换

概念和意义:在开发中,1.某种类型的变量赋值给另一种类型的变量时需要转换2.不同的类型需要一起计算时要用到类型的转换。

6.1.自动类型转换

概念:类型范围小的变量可以直接赋值给类型大的变量。

比如byte类型的变量可以直接赋值给int类型的变量。

package jline2;public class hello {public static void main(String[] args) {//目标:理解自动类型转换机制byte a = 12;int b = a;//没有报错,发生了自动类型转换System.out.println(a);System.out.println(b);}
}

输出两个12。

执行原理:

例:1.首先开辟一个byte类型的名为a的空间(8位的二进制);2.第二行开始开辟一个int类型名为b的空间(32位);3.将a变量里面的数据赋值到b变量中,将a中的数放在b的最后前面补0。

其他形式:

6.2.表达式的自动类型转换

概念及意义:在进行不同类型的变量或数据一起运算时,要知道最后运算出的数据的类型。

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型再运算。

注意:

  • 最终结果类型有最高类型决定
  • byte、short、char是直接转化成int类型参与运算的
package jline2;public class hello {public static void main(String[] args) {//目标:掌握表达式的自动类型转换机制byte a = 10;int b = 20;long c = 30;long rs = a + b + c;//最高表达式是longSystem.out.println(rs);}
}

6.3.强制类型转换

      概念:大范围类型变量转换为小范围类型变量

数据类型 变量2=(数据类型)变量1、数据

例如:

package jline2;public class hello {public static void main(String[] args) {//目标:掌握强制类型转换int a3 = 20;//byte b3 = a3;//报错//需要强制类型转换byte b3 = (byte)a3;}
}

执行原理:

1.首先开辟一个int类型的名为a3的空间(32位的二进制);2.第二行开始开辟一个类byte型名为b3的空间(8位);3.将a3变量里面的数据赋值到b3变量中,将a中的数的最后几位强制放在b中。

另一种情况:范围大于小范围值时,

package jline2;public class hello {public static void main(String[] args) {//目标:掌握表达式的自动类型转换机制int a4 = 1500;byte b4 = (byte)a4;System.out.println(b4);//-36}
}

所以,强制类型转换是可能造成数据丢失的,比如浮点型强转成整型,直接丢掉小数点部分,保留整数部分返回。

7.运算符

7.1.基本的算术运算符

+ - * /都和数学语言一样(/中在Java中两个整数相除结果还是整数)

%取余:获取的是两个数据做除法的余数。

+还可以作为连接符:不能计算时连接。

int a = 5;
System.out.println("abc" + a);//输出abc5

7.2.自增自减运算符

自增:++

自减:--

注意:它们只能操作变量,不能操作字面量。

int a = 10;
//a++;//a= a+1;
++a;System.out.println(a);//11
//a--;//a = a-1
--a;
System.out.println(a);//11-1=10

++、--如果不是单独使用,放在变量的前后会有明显的区别:

  • 放在变量的前面对变量进行+1、-1的操作,再拿变量的值进行运算。
  • 放在变量的前面,先拿变量的值进行运算,再对变量进行+1、-1的操作。
package jline2;public class hello {public static void main(String[] args) {/int a5 = 10;int rs2 = ++a5;//放前面,先加后用System.out.println(rs2) ;System.out.println(a5) ;//先加让a5变成11再给rs2//int b5 = 10;int rs3 = b5++;//放后面,先用后加System.out.println(rs3) ;//10先把10给rs3再加在b5上System.out.println(b5) ;
}

7.3.赋值运算符

基本赋值运算符是“=”,从右往左看

扩展:

符号用法作用底层代码形式
+=a+=b加后赋值a = (a的类型)(a + b);
-=a-=b减后赋值a = (a的类型)(a - b);
*=a*=b乘后赋值a = (a的类型)(a * b);
/=a/=b除后赋值a = (a的类型)(a / b);
%=a%=b取余后赋值a = (a的类型)(a % b);

注意:扩展的赋值运算符隐含了强制类型转换。

例:

package item1;public class lessonss {public static void main(String[] args) {//目标:掌握扩展赋值运算符的使用//+=//需求:收红包double a = 9.5;double b = 520;a += b;//a =(double)a + b;System.out.println(a);//-= 需求:发红包double i = 600;double j = 520;i -= j;//i =(double) i - j;System.out.println(i);}
}

例题:

byte x = 10;
byte y = 30;
x = x + y;//是否正确

错误

package item1;public class lessonss {public static void main(String[] args) {byte x = 10;byte y = 30;//x = x + y;//编译报错x =(byte) (x + y);//x += y;也是正确的System.out.println(x);}
}

原因:byte、short、char是直接转化成int类型参与运算的,也就是说x+y是整型。

7.4.关系运算符

判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔值类型的值:true或者false。

package item1;public class lessonss {public static void main(String[] args) {//目标:关系运算符的基本使用int a1 = 10;int b1 = 5;boolean rs = a1 > b1;System.out.println(rs);//true}
}

7.5.逻辑运算符

逻辑运算符:&(与)、|(或)、!(非)、^(异或)

依次运算逻辑为:

  • &(与):多个条件必须都是true;有一个是false,结果就是false
  • |(或):多个条件中只要有一个是true,结果就是true
  • !(非):取反;
  • ^(异或):前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true

特别地:&&(短路与)、||(短路或);判断结果与单个&|一样,过程不同。

&&:左边是false,右边不执行

||:左边是true,右边不执行

注意:在Java中,“&&”、“||”无论左边是false是true,右边都要执行。所以说&&、||的运算效率更高。

7.6.三元运算符

//格式
条件表达式? 值1:值2;

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

package item1;public class lessonss {public static void main(String[] args) {//目标:掌握三元运算符运算符的使用double score =98.5;String rs4 = score >= 60 ? "及格" : "不及格";System.out.println(rs4);//及格}
}

相关文章:

3.Java入门笔记--基础语法

1.字面量 概念:计算机用来处理数据的,字面量就是告诉程序员数据在程序中的书写格式 常用数据:整数,小数直接写;字符单引号(A)且只能放一个字符;字符串双引号("Hel…...

关于SOCKS协议的常见误区有哪些?

代理协议在设备与代理服务器之间的数据交换中起到了关键作用。在这方面,SOCKS代理协议是常见的选择之一,被广泛应用于下载、传输和上传网络数据的场景。然而,关于SOCKS代理协议存在一些常见的误解,让我们来逐一了解。 一、使用SO…...

无极低码课程【redis windows下服务注册密码修改】

下载Windows版本的Redis linux环境 (自行下载) 1.打开官网https://redis.io/downloads/ windows环境 1.打开github https://github.com/microsoftarchive/redis/releases 然后选择你喜欢的版本zip或msi下载 2.这里下载zip版,解压后后,打开安装目录 3.双击redis-server…...

多ip访问多网站

1,关闭防火墙和安全软件 [rootlocalhost ~]# systemctl stop firewalld.service [rootlocalhost ~]# setenforce 02,挂载点,下载nginx [rootlocalhost ~]# mount /dev/sr0 /mnt [rootlocalhost ~]# dnf install nginx -y 3,一个虚拟机增加多个ip地址 [rootloc…...

Pytest参数详解 — 基于命令行模式!

1、--collect-only 查看在给定的配置下哪些测试用例会被执行 2、-k 使用表达式来指定希望运行的测试用例。如果测试名是唯一的或者多个测试名的前缀或者后缀相同,可以使用表达式来快速定位,例如: 命令行-k参数.png 3、-m 标记(…...

指针——函数指针数组

(一)前文回顾 1、前篇代码分析 void(*signal(int , void(*)(int)))(int) ; 那么这串代码究竟是什么呢? 别慌,让我们来一步一步拆解,首先我们通过之前的学习,已经明白了什么是函数指针(如果有…...

MySQL中的增查操作:探索数据的奥秘,开启数据之门

本节,我们继续深入了解MySQL,本章所讲的基础操作,针对的是表的增删查改! 一、Create 新增 1.1、语法 INSERT [INTO] table_name[(column [, column] ...)] VALUES(value_list) [, (value_list)] ... value_list: value, [, va…...

oracle_查询建表语句

查询建表语句 SELECTdbms_metadata.get_ddl ( TABLE, <table_name> ) FROMdualdbms_metadata.get_ddl&#xff1a;是Oracle提供的一个函数&#xff0c;用于获取数据库对象的DDL语句&#xff0c;它允许你查看或导出数据库对象的创建脚本‘TABLE’&#xff1a; 是这个函数…...

004-按照指定功能模块名称分组

按照指定功能模块名称分组 一、说明1.现在有一个需求&#xff1a;2.具体做法 二、代码案例三、效果展示 一、说明 1.现在有一个需求&#xff1a; 需要把一个功能模块的几个功能点放在同一个文档目录下&#xff0c;这几个功能点分布在不同的 Controller 2.具体做法 需要把他…...

ChatGPT写作助手:论文写作必备提示词一览

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的发展&#xff0c;ChatGPT在学术写作领域的应用越来越广泛。它不仅能够帮助撰写论文&#xff0c;还可以通过不同的提示词完成构思、文献综述、数据分析、润色等任务&a…...

大数据开发电脑千元配置清单

大数据开发电脑配置清单 电脑型号HUANANZHI 台式电脑操作系统Windows 11 专业版 64位&#xff08;Version 23H2 / DirectX 12&#xff09;处理器英特尔 Xeon(至强) E5-2673 v3 2.40GHz主板HUANANZHI X99-P4T&#xff08;P55 芯片组&#xff09;显卡NVIDIA GeForce GT 610 ( 2…...

VP9官方手册-帧内预测

8.5.1 intra prediction process...

windows 自定义scheme协议。

浏览器打开自定义scheme参考上一篇&#xff1a;Chromium 自定义scheme协议启动过程分析c 1、注册表里面按照如下格式填写自定义scheme协议导入&#xff1a; Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\jdtest] "URL:jdtest Protocol" "URL Proto…...

什么是SQLite?

一、什么是SQLite? SQLite是一个进程内的软件库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库不一样&#xff0c;您不需要在系统中配置。 就像其它数据库&#xff0c;SQLite引擎不是…...

域1:安全与风险管理 第2章-人员安全与风险管理

第二章的内容确实较为丰富&#xff0c;需要细心且耐心地逐步消化和理解。不妨放慢阅读速度&#xff0c;对每个要点都进行深入思考&#xff0c;确保自己真正掌握了其核心意义。这样&#xff0c;虽然可能花费更多时间&#xff0c;但能够更扎实地掌握第二章的知识&#xff0c;为后…...

php中的错误和异常捕获

目录 一&#xff1a; 异常&#xff08;Exceptions&#xff09; 二&#xff1a; 错误&#xff08;Errors&#xff09; 三&#xff1a;实际项目的异常和错误处理 在PHP中&#xff0c;异常&#xff08;Exceptions&#xff09;和错误&#xff08;Errors&#xff09;是两个不同的…...

nextjs项目中,使用postgres的完整案例

目的 通过此案例&#xff0c;可以简单快速的过一下数据库的操作&#xff0c;熟悉app-router这种模式下&#xff0c;client component和server component的两种组件中基本的接口使用。 技术栈 nextjs14.2.* app-routervercel/postgres0.10.*typescript5 重要事情说三遍1 ap…...

tsconfig.json 内容解读

tsconfig.json 文件是 TypeScript 项目的主要配置文件&#xff0c;用于指定编译选项和项目设置。通过这个文件&#xff0c;你可以控制编译器的行为&#xff0c;例如输出文件的路径、模块解析方式、严格类型检查等。 以下是一些常见的 tsconfig.json 属性及其详细解释&#xff…...

KClass-关于kotlin中的反射

override val responseType: KClass<SetOperationModeResponse> SetOperationModeResponse::class,这段代码的含义&#xff1a; responseType 是一个只读属性&#xff08;val&#xff09;&#xff0c;它的类型是 KClass<SetOperationModeResponse>。KClass<T&…...

Java集合剖析2】Java集合底层常用数据结构

一、数据结构与集合 接下来就要学习集合具体的实现类了&#xff0c;集合的实现类底层可能用1种或多种数据结构来存储数据。所以在学习集合的实现类前&#xff0c;我们有必要了解一下一些常见的数据结构&#xff0c;这样我们在后面查看集合实现类的底层源码时&#xff0c;才不会…...

java 第10天 String创建以及各类常用方法

一.String创建的两种形式 1.通过new的当时 String strnew String(); 2.不new的方式 String s1""; 二.new 和不new的方式的区别是什么 不new创建的字符串首先是拿着值去常量池中查找&#xff0c;是否有该内容&#xff0c;有就用常量池该字符串的地址&#xff0…...

VS 解决方案里面.vs文件夹

VS解决方案中的.vs文件夹主要用于存储当前用户在解决方案中的工作配置。 这些配置包括多个方面&#xff1a; 窗口布局和选项卡状态&#xff1a;.vs文件夹记录了VS关闭前最后的窗口布局以及最后打开的选项卡。这样&#xff0c;当用户重新打开解决方案时&#xff0c;可以继续之前…...

初试PostgreSQL数据库

文章目录 一、PostgreSQL数据库概述1.1 PostgreSQL的历史1.2 PostgreSQL安装1.3 安装PostgreSQL二、PostgreSQL起步2.1 连接数据库2.1.1 SQL Shell2.1.2 执行SQL语句2.2 pgAdmin 42.2.1 打开pgAdmin 42.2.2 查找数据库2.2.3 打开查询工具2.2.4 执行SQL语句三、实战小结文章目录…...

springboot3导出数据库数据到excel

一、导入依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.3.0</version></dependency><d…...

十四、行为型(观察者模式)

观察者模式&#xff08;Observer Pattern&#xff09; 概念 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象间的一对多依赖关系&#xff0c;当被观察的对象&#xff08;主题&#xff09;状态发生改变时&#xff0c;所有依赖…...

爬取简书1

import osfrom selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.edge.service import Service import timeimport pandas as pdfrom selenium.webdriver.common.action_chains import ActionChainsdef get_aws():# 如果 WebDr…...

基于STM32单片机设计的矿山环境作业安全监测系统

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】需求总结1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 模块的技术详情介绍【1】BC26-NBIOT模块【2】DHT11温湿度模块【3】PM2.5粉尘模块二…...

大数据linux操作系统

第一关&#xff1a;Linux的初体验 答案&#xff1a; cd / ls -a / &#xff08;里面有空格要注意&#xff09; 第二关&#xff1a;Linux的常用命令 答案&#xff1a; touch newfile mkdir newdir cp newfile newdir/newfileCpy 第三关&#xff1a;Linux查询命令帮助语句…...

MySQL 【日期】函数大全(七)

目录 1、UNIX_TIMESTAMP() 将指定的日期/日期时间转为 UNIX 时间戳值。 2、WEEK() 返回给定日期位于当年的第几周。 3、WEEKDAY() 返回给定日期的工作日编号。 4、WEEKOFYEAR() 返回给定日期位于当年的第几周 5、YEAR() 提取日期的年份部分并作为数字返回。 6、YEARWEEK()…...

IP报文格式、IPv6概述

IPv4报文格式 IPv4报文首部长度至少为20字节(没有可选字段和填充的情况下)&#xff0c;下面来逐一介绍首部各个字段的含义 Version版本&#xff1a;表示采用哪一种具体的IP协议&#xff0c;对于IPv4来说该字段就填充4以表示&#xff0c;如果是IPv6就填充6IHL首部长度&#xff…...