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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听