首页 > 编程语言 >复习 - Java 基本语法

复习 - Java 基本语法

时间:2023-08-12 15:56:07浏览次数:40  
标签:运算符 Java 复习 int 数据类型 语法 变量 运算

前言

有两年没有怎么使用过 Java 了,重新复习一下基础的内容,特此记录。

视频课程为B站 尚硅谷宋红康java基础视频

关键字和保留字

关键字

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中的所有字母都为小写

image

image

保留字

定义:现有的Java版本尚未使用,但以后版本可能会作为关键字使用。命名时注意规避。

例如:goto,const

标识符

定义

Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

规则

不遵守会导致编译不通过

  1. 由大小写字母,数字,_或$组成
  2. 数字不可以开头
  3. 不可以使用关键字和保留字,但可以包含
  4. 严格区分大小写,长度无限制
  5. 不能包含空格

命名规范

不遵守编译依然会通过,遵守规范可以增加代码的可阅读性

  • 包名:多单词组成时均为小写
  • 类名、接口名:多单词组成时,首字母大写
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,之后的单词首字母大写
  • 常量名:所有字母都大写,多单词时用下划线连接

变量

基本概念

概念

  • 内存中的一个存储区域
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

作用

用于在内存中保存数据

使用格式

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

注意

  • Java中变量必须先声明后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域,其定义在一对{ }中
  • 变量只在其作用域内有效
  • 同一个作用域内,不能定义重名的变量

数据类型

image

基本数据类型

数值型

image

注意:定义long型变量时必须用“l”或“L”作为结尾

浮点型

image

浮点型变量有两种表示形式:

  • 十进制数形式:如 5.12 512.0f .512 (必须有小数点)
  • 科学计数法形式:如 5.12e2 512E2 100E-2

Java 的浮点型变量默认为 double 类型,声明 float 型变量,必须后加 f 或 F 。使用浮点型变量时通常使用 double 类型。

字符型

定义 char 型变量,通常使用一对 ‘ ’ ,内部只能写一个字符。

Java 中的字符都使用 Unicode 编码,所以它是可以进行运算的。

转义字符 说明 转义字符 说明
\b 退格符 " 双引号
\n 换行符 ' 单引号
\r 回车符 \\ 反斜线
\t 制表符
布尔类型

boolean 类型只能取 true 或 false 。常用于条件判断和循环结构。

基本数据类型之间的运算规则

自动类型提升

当容量小的数据类型变量和容量大的数据类型变量做运算时,结果会自动提升容量。

byte -> short -> int -> float -> double ,当 char 参与运算时,它与 byte 和 short 都会提升为 int 类型,此时的规律为:byte 、 short 、char -> int -> float -> double 。

强制类型转换

通过强转符 () 进行操作,例如:int i1 = (int)d1 ,但强转可能会导致精度产生损失。

当定义 long 型变量时,末尾不加 L 可能不会产生编译错误,这是因为该数据在 int 的范围之内,Java 将其作为 int 类型进行计算,而该数据超过 int 的范围时便会产生报错。

float 类型的末尾必须加 f

整型常量默认为 int 型,浮点型常量默认为 double 型。此处的常量指的是直接写的一个数值,例如:byte b2 = b1 + 1 ,这样的代码会产生编译错误,1 为 int 类型。

引用数据类型(String)

声明 String 类型变量时,使用一对 “” ,可以和 8 种基本数据类型变量做运算,且只能做连接运算 ‘+’ ,运算结果仍然是 String 。

String 类型转换至其它基本数据类型时需要使用特定的方法,不可使用强转符进行转换。

进制

常见的有二进制、十进制、八进制和十六进制,表示方式如下:

进制 表示字符 表示方式
二进制 0, 1 以 0b 或者 0B 开头表示
十进制 0-9
八进制 0-7 以数字 0 开头表示
十六进制 0-9 及 A-F 以 0x 或 0X 开头表示,A-F 不区分大小写

运算符

算术运算符

image

关于自增计算 ++ 和 -- ,举例说明:

int a1 = 10;
int b1 = ++a1;
System.out.println(a1, b1)
// 输出结果:11, 11

int a2 = 10;
int b2 = a2++;
System.out.println(a2, b2)
// 输出结果:11, 10

赋值运算符

符号:= ,当 = 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。

拓展赋值运算符:+=,-=,*=,/=,%= 。

比较运算符

image

比较运算符的结果都是 boolean 型。

逻辑运算符

image

逻辑与短路与 执行结果相同,但执行过程有区别:

  • 逻辑与:当遇到一个条件为 false 时,依然去执行后续的条件;
  • 短路与:当遇到一个条件为 false 时,不执行后续的条件,直接输出结果 false 。

逻辑或短路或 与 与运算 相同,遇到 true 时结果相同但执行过程不同。

位运算符

位运算是直接对整数的二进制进行的运算。

运算符 运算 范例 解释
<< 左移 3 << 2 = 12 在一定范围内,每向左移一位,相当于该数乘以 2
>> 右移 3 >> 1 = 1 在一定范围内,每向右移一位,相当于该数除以 2
>>> 无符号右移 3 >>> 1 = 1
& 与运算 6 & 2 = 2 将两个数的二进制每一位进行与运算,最后得出结果
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5 (相同为真,不同为假)
~ 取反运算 ~6 = -7 包括符号位在内的所有取反

注意:位运算相较于整数之间直接计算效率更高。

三元运算符

格式(条件表达式) ? 表达式 1 : 表达式 2

结果:条件表达式结果为 true 时运算结果为表达式 1 ,为 false 时运算结果为表达式 2 。

注意

  • 表达式 1 和 2 应统一为同种类型;
  • 三元运算符可以嵌套使用;
  • 等同于 if - else 结构。

标签:运算符,Java,复习,int,数据类型,语法,变量,运算
From: https://www.cnblogs.com/KoiC/p/17624921.html

相关文章

  • How to set z-index order in Canvas using javascript All In One
    Howtosetz-indexorderinCanvasusingjavascriptAllInOne如何使用javascript在Canvas中设置z-index顺序globalCompositeOperation//全局作用域globalscopeconstcvs=document.querySelector("#canvas");constctx=canvas.ge......
  • java字符串String类的常用方法
    java字符串String类的常用方法字符串的创建:(1)定义字符串直接赋值,在字符串池中开辟空间()Stringstr1=“Hello”;//在字符串池中写入字符串"hello"Stringstr2=“Hello”;//直接引用字符串池中的"Hello"System.out.println(str1==str2);//地址相同,输出:true(2)使用new关键字调用字......
  • 组合式api-侦听器watch的语法
    和vue2对比,也是语法上稍有不同。监听单个数据对象<scriptsetup>import{ref,watch}from"vue";constcount=ref(100)//语法:watch(响应式数据对象,(newVal,oldVal)=>{业务处理...}//只监听单个数据//watch(count,(newValue,oldValue)=>{//console.l......
  • java opencv绘制工字型
    javaopencv绘制工字型 packagecom.vfsd.core;importjava.util.ArrayList;importjava.util.List;importorg.opencv.core.Core;importorg.opencv.core.CvType;importorg.opencv.core.Mat;importorg.opencv.core.Point;importorg.opencv.core.Rect;importorg......
  • java解析xml获取节点的属性
    1、java解析xml中返回的数据???2、java中dom4j解析xml文件怎么获取节点属性3、详解Java解析XML的四种方法4、使用Java自带SAX工具解析XML5、Java解析XML的几种方法java解析xml中返回的数据???JDOM生成和解析XML为减少DOM、SAX的编码量,出现了JDOM优点:20-80原则,极大减少......
  • 【Java】智慧工地源码-支持私有化部署,SaaS模式+全套硬件设备
    智慧工地硬件设备包括:AI识别一体机、智能广播音响、标养箱、塔机黑匣子、升降机黑匣子、吊钩追踪控制设备、扬尘监测设备、喷淋设备。1.什么是AI危险源识别AI危险源识别是指基于智能视频分析技术,对视频图像信息进行自动分析识别,以实时监测危险区域的人员闯入、靠近等危险行为,从......
  • Java | 如何学习Java
    1、确定需求工作需要跳槽,对方要求技术控2、看看能否使用传统技术解决能解决,但是不能完美的解决完全解决不了3、引出我们学习的新技术和知识点4、学习新技术或者知识点的基本原理和基本语法(不要考虑细节)5、快速入门(基本程序,crud)6、开始研究技术的注意事项(重中之重)......
  • 【面试题】 JavaScript中高级语法--?? 表达式 的作用
    前言在JavaScript中,双问号(??)表达式是一种非常有用的方法。它的作用是用来检测一个值是否为null或undefined。如果该值为null或undefined,那么双问号表达式会返回一个默认值。下面我们就来具体探究一下双问号表达式的用法,以及它与其他相似方法的区别。具体用法。其实,双问号表达式就是......
  • Java源码解析-重点集合框架篇
    Java源码解析,集合篇一:故事背景二:数据结构2.1线性结构2.2非线性结构三:集合分类3.1结构图四:详细分析4.1List4.1.1ArrayList4.1.1.1底层结构4.1.1.2主要特点4.1.2LinkedList4.1.2.1底层结构4.1.2.2主要特点4.1.3Vector和Stack4.1.3.1Vector4.1.3.1Stack五:总结提升一:故......
  • 欢迎大家加入JAVA技术开发讨论
    最近加了一些java的开发群,感觉每个群的技术氛围都不浓厚,很多问题出来后,根本没人理会。想现在建立一个技术氛围浓厚的java技术问答群,欢迎有兴趣的同学加入。近期也汇总了一些觉得不错的资料,欢迎大家一起进步学习!注:本群不收费,也不做广告推广,仅技术交流。加群方式:点击链接获......