没有黑眼圈的小浣熊初学Java基础的笔记(一)

2023-11-08 04:40

本文主要是介绍没有黑眼圈的小浣熊初学Java基础的笔记(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

标题@没有黑眼圈的小浣熊初学Java基础的笔记(一)

注释、标识符、关键字

注释

​ ·单行注释 //

​ ·多行注释 /* */

​ ·文档注释 /** */

数据类型

**java是强类型语言:**要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

java的数据类型分为2大类

基本类型(primitive type)

Byte

short

char

int

long

float

double

boolean

引用类型 : 类 、 接口、数组

类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

低---------------------------------------------------------------->高

byte,short,char->int->long->float->double (低到高,自动转换)

高到低,强制转换

int a = 3; double b = 13.88;int a = (double)b;

但是如果是以下方式运算时,不改变变量类型,仍然可以计算

short i = 3;
i = i + 3;  //(编译不通过),此时i+3应该为int型,如需编写,应当改为i = (short)i+3
i += 3; //编译正确,此方法计算时不会改变变量类型,仍为short类型

byte\char short三者之间做运算,结果应该为int型数

变量、常量

变量就是可变化的量!

Java变量时程序中最基本的存储单元,其要素包括变量名,变量类型,和作用域

type varName [=value] [,varName{=value}];

//数据类型 变量名 = 值;可以使用都考隔开来声明多个同类型变量。

常量
变量的命名与规范

所有变量、方法、类名:见名知意

类成员变量:首字母小写驼峰原则:moneySalary ,除了第一个单词小写以外,后面的单词首字母大写 例:lastName;

局部变量:首字母小写驼峰原则

常量:大写字母和下换线:MAX_VALUE;

类名:首字母大写驼峰原则:Man,GoodMan;

方法名:首字母小写驼峰原则:run(),runRun();

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ouLhQtYb-1605917989758)(C:\Users\Wyy1998\Desktop\命名规范.png)]

运算符

Java语言支持如下运算符

算数运算符

​ 表1

运 算 符名 称说 明例 子
-取反符号取反运算b=-a
++自加一a++:先取值再加一,或++a:先加一再取值a++ 或 ++a
自减一a–:先取值再减一,或–a:先减一再取值a-- 或 --a
+求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作a + b
-求 a 减 b 的差a - b
*求 a 乘以 b 的积a * b
/求 a 除以 b 的商a / b
%取余(取模)求 a 除以 b 的余数 a % ba % b

表 1 中,-a 是对 a 取反运算,a++ 或 a-- 是在表达式运算完后,再给 a 加一或减一。而 ++a 或 --a 是先给 a 加一或减一,然后再进行表达式运算。

int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);

上述代码第 2 行是 -a,是把 a 变量取反,结果输出是 -12。第 4 行代码是先把 a 赋值给 b 变量再加一,即先赋值后 ++,因此输出结果是 12。第 6 行代码是把 a 加一,然后把 a 赋值给 b 变量,即先 ++ 后赋值,因此输出结果是 14。
在这里插入图片描述

赋值运算符

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。

扩展赋值运算符

运算符含义实例结果
+=将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身int a=5; a+=2;a=7
-=将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身int a=5; a-=2;a=3
*=将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身int a=5; a*=2;a=10
/=将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身int a=5; a/=2;a=2
%=将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身int a=5; a%=2;a=1

example:

int x, y, z; // 定义3个整型的变量
x = y = z = 5; // 为变量赋初值为5
x += 10; // 等价于x=x+10,结果x=15
y -= 3; // 等价于y=y-3,结果y=2
z *= 5; // 等价于z=z*5,结果z=25
x /= 4; // 等价于x=x/4,结果x=3
z %= x; // 等价于z=z%x,结果z=1

关系运算符

关系运算符(relational operators)也可以称为“比较运算符”,用于用来比较判断两个变量或常量的大小。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。

运算符含义说明实例结果
>大于运算符只支持左右两边操作数是数值类型。如果前面变量的值大于后面变量的值, 则返回 true。2>3false
>=大于或等于运算符只支持左右两边操作数是数值类型。如果前面变量的值大于等于后面变量的值, 则返回 true。4>=2true
<小于运算符只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回 true。2<3true
<=小于或等于运算符只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值, 则返回 true。4<=2false
==相等运算符如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 Java 也支持两个 boolean 类型的值进行比较。44 97’a’ 5.05 truefalsetrue true true false
!=不相等运算符如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。4!=2true

逻辑运算符

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

逻辑运算符的用法、含义及实例

运算符用法含义说明实例结果
&&a&&b短路与ab 全为 true 时,计算结果为 true,否则为 false。2>1&&3<4true
||a||b短路或ab 全为 false 时,计算结果为 false,否则为 true。2<1||3>4false
!!a逻辑非a 为 true 时,值为 false,a 为 false 时,值为 true!(2>4)true
|a|b逻辑或ab 全为 false 时,计算结果为 false,否则为 true1>2|3>5false
&a&b逻辑与ab 全为 true 时,计算结果为 true,否则为 false1<2&3<5true
^a^b异或ab相同时为false,ab不同时为true
  • && 与 & 区别:

    &&运算:如果 a 为 false,则不计算 b(因为不论 b 为何值,结果都为 false)

  • || 与 | 区别:

    ||运算:如果 a 为 true,则不计算 b(因为不论 b 为何值,结果都为 true)

位运算符

位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。

首先了解一下二进制的原码、反码和补码

反码:

  • 正数的反码还是等于原码

  • 负数的反码就是他的原码除符号位外,按位取反。

补码:

  • 正数的补码等于他的原码
  • 负数的补码等于反码+1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vurWSzwA-1605917989762)(C:\Users\Wyy1998\Desktop\二进制补码.png)]

位逻辑运算符

运算符含义实例结果
&按位进行与运算(AND)4 & 54
|按位进行或运算(OR)4 | 55
^按位进行异或运算(XOR)4 ^ 51
~按位进行取反运算(NOT)
正数取反:各二进制码按补码各位取反
负数取反:各二进制码按补码各位取反
~ 4-5
»右移位运算符8»14
«左移位运算符9«236
>>>无符号右移3>>>11
<<<无符号左移

example:

int i=10;
System.out.printf("%x \n",~i);
System.out.printf("%d \n",~i);

可以看到输出结果为 fff5和-11,前者将它转换为二进制是 1111111111110101。这个二进制数的最高位为 1,表示这个数为负数。除最高位外,按位取反再加 1,即得到二进制原码 1000000000001011,用十进制数表示即为 -11。

左位移运算符

左移位运算符为«,其运算规则是:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

例如,将整数 11 向左位移 1 位的过程如图 6 所示。

img
图 6 对11左移1位运算过程

从图 6 中可以看到,原来数的所有二进制位都向左移动 1 位。原来位于左边的最高位 0 被移出舍弃,再向尾部追加 0 补位。最终到的结果是 22,相当于原来数的 2 倍。(左移n位,相当于*2的n次幂)

右位移运算符

右位移运算符为»,其运算规则是:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。

例如,将整数 11 向右位移 1 位的过程如图 7 所示img

从图 7 中可以看到,原来数的所有二进制位都向右移动 1 位。原来位于右边的最低位 1 被移出舍弃,再向最高位追加 0 补位。最终到的结果是 5,相当于原数整除 2 的结果。(右移n位,相当于*(1/2)的n次幂)

复合位赋值运算符

运算符含义实例结果
&=按位与赋值num1 &= num2等价于 num 1=num 1 & num2
|=按位或赋值num1 |= num2等价于 num 1=num 1 | num2
^=按位异或赋值num1 ^= num2等价于 num 1=num 1 ^ num2
-=按位取反赋值num1 ~= num2等价于 num 1=num 1 ~ num2
«=按位左移赋值num1 «= num2等价于 num 1=num 1 « num2
»=按位右移赋值num1

List item

»= num2 | 等价于 num 1=num 1 » num2 |

条件运算符

Java 提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:

result = <expression> ? <statement1> : <statement3>;`

其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1, 否则就执行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。

运算符优先级

优先级运算符结合性
1()、[]、{}从左向右
2!、+、-、~、++、–从右向左
3*、/、%从左向右
4+、-从左向右
5«、»、>>>从左向右
6<、<=、>、>=、instanceof从左向右
7==、!=从左向右
8&从左向右
9^从左向右
10|从左向右
11&&从左向右
12||从左向右
13?:从右向左
14=、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>=从右向左

ex:

--y || ++x && ++z;

这个表达式中包含了算术运算符和逻辑运算符。根据表 1 中列出的优先级,可以确定它的执行顺序如下:
① 先计算 y 的自减运算符,即 --y。
② 再计算 x 的自增运算符,即 ++x。
③ 接着计算 z 的自增运算符,即 ++z。
④ 由于逻辑与比逻辑或的优先级高,这里将 ② 和 ③ 的结果进行逻辑与运算,即 ++x && ++z。
⑤ 最后将 ④ 的结果与 ① 进行逻辑或运算,即 --y||++x&&++z。

作业:

1、在java中将60转换为二进制、8进制、16进制数

包机制、java DOS

package pkg1[·pkg2[·pkg3…]];

一般利用公司域名倒置作为包名:com.baidu.www

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语句即可完成此功能

import package1[.package2…].(classname|*);

这篇关于没有黑眼圈的小浣熊初学Java基础的笔记(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367923

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与