首页 > 编程语言 >java学习day02

java学习day02

时间:2024-07-23 12:28:54浏览次数:11  
标签:1111 java 运算 ++ day02 学习 0000 true 变量

一.数据类型

1.1 本质

数据存储形式,存储空间大小

1.2 存储

整数存储:

1.3 分类

  1. 基本数据类型

数值型

整型

byte 字节 8bit -128~127

short 短整型 16bit -32768~32767

int 整型 32bit -2,147,483,648~2,147,483,647

long 长整型 64bit

浮点型

float 单浮点 32bit

double 双浮点 64bit

字符型

char 字符 16bit 0~65535

布尔型

boolean 布尔 8bit 00000001 true 00000000 false

  1. 引用数据类型

类,数组,接口

整数默认为int类型 小数默认为double类型 引用类型默认值为null,null不能打印

1.4 类型使用

1.4.1 整形

1.4.2 浮点型

float 32位

double 64位

1.4.3 字符型

使用ACSII码转换,支持unicode编码

1.4.4 转义符

转义符 \ 有意义字符转换为无意义字符

\n 换行

1.4.5 布尔型

布尔型只有ture和false两个
一般用于流程控制 占用1字节,1表示true,0表示false

1.5 类型转化

自动类型转换:低精度到高精度为自动类型转换

强制类型转换:高精度到低精度为强制类型转换(去掉高位,保留低位)

上述图片二进制补码为1000 0010转换为源码为1111 1110值为-126

char转换

二. 变量

2.1 常量

值在生命周期中不可更改

2.2 变量

2.3 变量声明

同作用域变量不能重名

2.4 变量分类

(java中没有全局变量,没有函数,class外不允许写东西)

局部变量:方法中创建的变量(局部变量具有临时性.方法执行结束就消失了,并且只能在当前方法中使用,通过变量名直接使用)

静态变量:在类体中(方法外)使用static创建的变量

成员变量:在类体中(方法外)没有使用static创建的变量

全局:(会导致命名冲突问题)没有任何二次引用(使用.操作符),可以直接访问的变量(c++中类外为全局,类内为非全局)Java中不允许在类外写东西,java已经进行模块化封装,摒弃了全局的概念,所以在java中也不允许执行访问某个变量或方法。

使用.操作符可以更好地寻找变量。

2.5 变量调用

局部变量:局部变量具有临时性.方法执行结束就消失了,并且只能在当前方法中使用,通过变量名直接使用

静态变量:类级别,通过类名.静态变量名使用,如果在当前类中使用当前类的静态变量,类名可以省略

成员变量:对象级别,通过对象.成员变量名调用,在成员方法中可以直接使用变量名调用

2.6 变量调用优先级

2.7默认值

局部变量没有默认值

静态变量和成员变量有默认值

三.运算符

3.1 算数运算

算数运算符: + - * / % ++ --

除法中如果是整数,只要商不要余数.(10/3=3)

优先级:从左到右

/ * % 大于 + -,都是左结合

小数加减不要判断相等

++ --属于一元运算,优先级大于* / % + -

++自身加1,会发生赋值. i++等同于i = i + 1

i++ 和 ++i区别 :

i++ 先初始化赋值,再自身+1

++i 先自身+1,再初始化赋值

3.2 混合运算

当进行多类型混合运算时,结果是参与运算的最大类型.

当只有byte short int char 四种类型中任意一种或多种进行运算,结果一定是int类型.

3.3 关系运算

结果一定是布尔型

< <= > >= == !=

3.4 位运算/逻辑运算

逻辑运算结果都为布尔型

& 位与,两边都为true,结果就是true

| 位或,一边为true,结果就是true

! 位非,取反,true就是false,false就是true(一元运算)

&& 短路与,两边都为true,结果就是true,如果第一个条件为false,则第二个条件不再执行

|| 短路或,一边为true,结果就是true,如果第一个条件为true,则第二个条件不再执行

^ 位异或,两边不一样,结果就是true

当&&和||同时出现时,&&的优先级大于||

3.5 位运算进阶

  1. &也支持两边是数字,计算是转换为二进制进行每位比较,都是1取1,否则取0

运算结果一定不会超过两个数中的最小值.

15&8

15 : 0000 1111 8: 0000 1000 &: 0000 1000

  1. ^也支持两边是数字,转换为二进制进行每位比较,不同取1,相同取0 因此两个相同数进行^,结果为0,并且0和任何数进行^,该数不变

15^8

15:0000 1111 8: 0000 1000 ^: 0000 0111

  1. ~按位非,转换二进制,1变0,0变1(符号位也会变)直接修改内存,内存中存储的是补码.

~12

0000 1100 1111 0011补码 1111 0010 反码 1000 1101 源码

  1. >>:右移运算(考虑符号位,符号位不受影响) 10 >>1,右移1次,会把最右边的一个删除,在最左边补0(负数补1) 右移1次,相当于该数/2

  1. >>>:右移运算(不考虑符号位),只补0,不补1

    System.out.println(10 >>> 2);

    10: 1000 0000 0000 0000 0000 0000 0000 1010

    1111 1111 1111 1111 1111 1111 1111 0101

    // 001111 1111 1111 1111 1111 1111 1111 01

    System.out.println(-10 >>> 2);

    System.out.println(0b00111111111111111111111111111101);

  1. << : 左移运算,只补0, 不补1 左移1次,相当于该数*2

3.6 赋值运算

右结合,当运算中出现多个赋值运算,则从右到左计算

= 把右边的,赋值给左边,如果右边是个运算,则把运算计算完,把结果赋值给左边

+= -= *= /= %=(会进行隐式的类型转换)

-=:左边减去右边,结果赋值给左边,a-= b;等价于a = a - b(有时需要强制类型转化);

byte+byte结果应该为int类型所以 x = x + y会报错

a=5 a=a+=a 5=5+=5 = 50

标签:1111,java,运算,++,day02,学习,0000,true,变量
From: https://blog.csdn.net/Hunshangmeng/article/details/140558862

相关文章

  • 三种语言实现快速选择(C++/Python/Java)
    题目给定一个长度为......
  • 【前端】JavaScript入门及实战91-95
    文章目录91DOM92事件93文档的加载94DOM查询(1)95图片切换的练习91DOM<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"><style></style></head><body> <buttonid="btn&quo......
  • 【前端】JavaScript入门及实战86-90
    文章目录86正则表达式87字符串和正则相关的方法88正则表达式语法(1)89正则表达式语法(2)90邮件的正则86正则表达式<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"><scripttype="text/javascript"> /* 使用字面量来创建正......
  • 【前端】JavaScript入门及实战96-100
    文章目录96DOM查询(2)97DOM查询(3)98全选练习(1)99全选练习(2)100全选练习(3)96DOM查询(2)<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"> <scripttype="text/javascript"> window.onload=......
  • IDEA解决java注释顶格、xml注释右对齐+无空格问题
    先配置java中注释格式: 然后是配置xml中的注释格式:还是CodeStyle,从java往下滑动到xml......
  • 快速学习一个算法,Transformer
    今天给大家介绍一个强大的算法模型,TransformerTransformer模型是由Vaswani等人在2017年提出的一种用于自然语言处理的深度学习模型,特别擅长于处理序列到序列的任务,如机器翻译、文本生成等。今天,我们主要从编码的角度来进行说明。Transformer模型架构Transformer......
  • 框架学习 | Streamlit 入门
    一、表格importstreamlitasstimportpandasaspdst.title("我的个人网站......
  • JavaScript——DOM属性之innerHTML和insertBefore
    今天我们来看看DOM当中的innerHTML和insertBefore。今天是用的样例仍然与上次一样,样例代码如下:<body><p>喜欢的城市</p><ulid="city"><liid="bj"name="beijing">北京</li><li>上海</li><......
  • 计算机课设——基于java 设计并实现 PC 端酒店管理系统
    软件工程课程设计——基于java设计并实现PC端酒店管理系统酒店管理系统使用java设计并实现PC端酒店管理系统。系统介绍酒店管理系统是为酒店及其客户开发的业务平台,开发的目标是用于帮助客户预订酒店,包括选择酒店、提交订单和撤销订单;以及帮助酒店处理预订业务,包......
  • 云计算学习——5G网络技术
    系列文章目录`提示:仅用于个人学习,进行查漏补缺使用。Day1网络参考模型Day2网络综合布线与应用Day3IP地址Day4华为eNSP网络设备模拟器的基础安装及简单使用Day5交换机的基本原理与配置Day6路由器的原理与配置提示:写完文章后,目录可以自动生成,如何生成可参考右......