没有黑眼圈的小浣熊初学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

相关文章

Sentinel 断路器在Spring Cloud使用详解

《Sentinel断路器在SpringCloud使用详解》Sentinel是阿里巴巴开源的一款微服务流量控制组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、... 目录Sentinel 介绍同类对比Hystrix:Sentinel:微服务雪崩问题问题原因问题解决方案请

Spring IOC的三种实现方式详解

《SpringIOC的三种实现方式详解》:本文主要介绍SpringIOC的三种实现方式,在Spring框架中,IOC通过依赖注入来实现,而依赖注入主要有三种实现方式,构造器注入、Setter注入... 目录1. 构造器注入(Cons编程tructor Injection)2. Setter注入(Setter

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

电脑没有仿宋GB2312字体怎么办? 仿宋GB2312字体下载安装及调出来的教程

《电脑没有仿宋GB2312字体怎么办?仿宋GB2312字体下载安装及调出来的教程》仿宋字体gb2312作为一种经典且常用的字体,广泛应用于各种场合,如何在计算机中调出仿宋字体gb2312?本文将为您... 仿宋_GB2312是公文标准字体之一,仿China编程宋是字体名称,GB2312是字php符编码标准名称(简