JavaSE基础知识(2)—变量和运算符
一、变量
1、理解
概念:内存中的一块数据存储空间
2、变量的三要素
数据类型
变量名
变量值
3、变量的语法和使用步骤★
步骤1:声明变量(计算机开辟一块空间)
数据类型 变量名;
步骤2:为变量赋值(初始化)
变量名 = 值;
步骤3:使用变量(打印、运算、比较等)
System.out.println(变量名);
注意:
①前两步可以合二为一:数据类型 变量名 = 值;
②可以同时声明多个变量,但要求变量的类型一致
语法:数据类型 变量名,变量名,变量名;
示例:int a=1,b,c=1;
4、变量的使用特点
①同一个作用域,变量不可以重名
作用域:变量的作用范围(根据变量的定义位置来确定变量的作用域)
public static void main(String[] args){
int a;
String a;
}
②变量必须先声明、赋值最后再使用
③变量的值可以更新,但必须在同一个类型范围内
④变量具备内存的“易失性”的特点
5、标识符
1、理解
凡是可以自己起名的地方,都称为标识符。如变量,方法,类,包,接口等
2、标识符的命名规则
1)由26个英文字母大小写,0-9 ,_或 $ 组成,数字不可以开头
2)不可以使用关键字和保留字,但能包含关键字和保留字
3)Java中严格区分大小写,长度无限制
4)标识符不能包含空格
3、标识符的命名规范
遵循“见名知义”原则
1)包名:多单词组成时所有字母都小写:xxxyyyzzz
2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
3)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
4)常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
二、数据类型
1、常见的数据类型
int:用于保存整型的
double:用于保存浮点型的
char:用于保存单个字符,要求字符值必须用单引号引起来
String:用于保存字符串,要求字符串值必须用双引号引起来
2、数据类型的分类 ★

3、基本数据类型详细介绍
(1)整型
| 名称 | 所占字节空间 | 数值范围 | |
| byte | 字节整型 | 1个字节 | -27~27-1 |
| short | 短整型 | 2个字节 | -215~215-1 |
| int | 整型 | 4个字节 | -231~231-1 |
| long | 长整型 | 8个字节 | -263~263-1 |
特点:
1、编译器默认的整型为int
2、long类型的标记为l或L
3、每个整型保存的数值不能超过所表示的范围,否则 会报错误!
(2)浮点型
| 名称 | 所占字节空间 | |
| float | 单精度浮点型 | 4个字节 |
| double | 双精度浮点型 | 8个字节 |
特点:
1、浮点型的存储和整型的存储不一样
浮点型真实的存储,和真正的数值之间有一些差距,所以叫“浮点型”
2、如果想表示更高精度的浮点数,可以使用BigDecimal
如果想显示指定位数的浮点数,可以使用格式的方法
double a = 12.3;
System.out.printf("%.2f",a/3);
3、编译器默认的浮点型为double类型
4、float类型的常量值最好加上 f或F标记
float f = 3.6;//错误
float f = 3.6f;
(3)字符型
| 名称 | 所占字节空间 | 使用的字符编码 | |
| char | 字符型 | 2个字节 | Unicode |
特点:
1.char类型的常量值形式:
char c = '';//× char c = ' ';//√ char c = 'c'; char c = '\u00f2'; char c = 100;
2.char类型的变量在进行运算或比较时,类型自动提升成int类型处理
案例1:
char c = 'd';
System.out.println(c+2);//102
案例2:
char c = '2';
char d = 2;
System.out.println(c==2);//false
System.out.println(d==2);//true
3.每个char类型的变量存储时,都需要先去对应的码表找到对应的码值,然后存储
☆char——>码值——>存储(char类型的底层实际上就是以整型存储的!)
每个char类型的变量读取时,都需要先将码值根据码值找到对应的字符,然后访问
☆码值——>char——>读取
(4)布尔型
| 名称 | 所占字节空间 | 表示的值 | |
| boolean | 布尔 | 1个字节 | true|false |
特点:
1、用于保存关系的结果,像关系表达式、逻辑表达式的结果就可以使用布尔型存储
2、一般当做条件,用在if结构或循环结构中
4、数据类型之间的转换
(1)基本数据类型之间的转换
除:boolean
1、自动类型转换
规则:小——>大

语法:double d = 1;
2、强转类型转换
规则:大——>小
语法:int i = (int)1.5;
特点:
①自动提升的原则。表达式的最终结果的类型为 操作数中最大的类型!
②强转符号只针对于最近的操作数有效,一般使用小括号提升优先级
(2)String类型和基本类型之间的转换
1、基本类型——>String类型
规则:直接拼接空字符串即可
语法:
char c = '中';
String s = c+"";
2、String类型——>基本类型
规则:除char之外,其他的都是通过 包装类型.parseXX的方法
语法:除char之外:
String s = "12345";
int i = Integer.parseInt(s);
char:
String s = "asfgh";
char c = s.charAt(1);//提取单个字符
char[] ch = s.toCharArray();//将整个字符串转换成字符数组
三、运算符
1、常见运算符
算术运算符
关系运算符
逻辑运算符
赋值运算符
三目运算符
2、运算符详细介绍
(1)算术运算符
1、基本算术运算符
+ - * / %
注意:/左右两边都是整型,结果取整
2、自增、自减运算符
++ --
特点:
①属于一元运算符:i++、--i
②可以作为独立的语句或作为表达式使用
作为独立的语句使用:i++;等价于++i;效果上等价于 i=i+1;
作为表达式使用:int j = i++; 先赋值后自增,等价于 int temp = i++; i++; j = temp;
int j = ++i; 先自增后赋值
③自增、自减运算符,底层做了优化,所以效率较高,其次不用手动的类型转换
int i = 10;
i*=1.523;//√
System.out.println(i);//15
(2)关系运算符
> < >= <= == !=
(3)逻辑运算符
| 名称 | 语法 | 特点 | |
| && / & | 与 | 条件1&& 条件2 | 两个条件都成立,结果为true |
| || / | | 或 | 条件1|| 条件2 | 只要有一个条件成立,结果为true |
| ! | 非 | !条件 | 如果条件成立,结果为false,否则为true |
&&和&的区别:
&& 如果第一个条件不成立,则不再执行第二个条件,效率较高
& 不管第一个条件是否成立,都要执行第二个条件,效率较低
||和|的区别:
|| 如果第一个条件成立,则不再执行第二个条件,效率较高
| 不管第一个条件是否成立,都要执行第二个条件,效率较低
(4)赋值运算符
1、基本赋值运算符 =
2、复合赋值运算符 += 、-= 、*=
特点:
1、运算顺序从右往左
2、赋值运算符的左边只能是变量,右边可以是变量、常量、表达式、方法调用
3、复合赋值运算符具备以下特点
①i+=3;效果上等价于 i=i+3;但效率比i=i+3;较高
②编译器内部做了优化,不用我们手动的类型转换了
③复合赋值的变量必须提前进行初始化
(5)三目运算符
条件?操作数1 :操作数2
特点:
1、如果条件成立,结果为操作数1,否则为操作数2!
2、两个操作数的类型要求一致或兼容
3、运算符优先级
()——>!——>++ -->算术运算符——>关系运算符——>逻辑运算符——>三目运算符——>赋值运算符
四、进制与位运算符
1、进制
(1)进制介绍
十进制:0-9 ,满10进1
二进制:0—1,满2进1,以0b或0B开头
八进制:0-7,满8进1,以0开头
十六进制:0-9 A-F,满15进1,以0x或0X开头
(2)进制转换
1、其他进制转换成十进制
规律:从最低位开始,依次将每个位上的数提取出来,乘以2|8|16的幂(幂从0开始),最后累加即可
2、十进制转换成其他进制
规律:不断除以2|8|16,将余数倒过来即可
3、二进制转换成八进制或十六进制
规律:从最低位开始每3位或每4位 ,转换成一位八进制或十六进制数即可,位数不够,前面用0补齐
4、八进制或十六进制转换成二进制
规律:将每个位上的数,拆分成3位或4位二进制,位数不够,前面用0补齐
2、位运算符
(1)常识
1、计算机底层的 都是以二进制的补码形式进行存储和运算的
2、相关概念
正数:三码合一
负数:
原码:将负数进行 进制转换的结果,其中最高位代表符号位
反码:最高位不变,其他位按位取反
补码:反码基础上+1
(2)常见的位运算符
1、<< 左移 :a<< b.将a左移指定的b位数,空缺位补0
2、>> 右移 :a>> b.将a右移指定的b位数,空缺位补符号位
3、>>> 无符号右移:a>>> b.将a右移指定的b位数,空缺位补0
4、& 与:a&b 按位取与,两个都是1,结果为1,否则为0
5、| 或:a|b 按位取或,两个都是0,结果为0,否则为1
6、^异或:a^b 按位异或,两个相同为0,不同为1
7、~取反:~a 按位取反,如果为1,则结果为0,否则结果为1
注意:
都是以补码形式
最高位参与运算!
JavaSE基础知识(2)—变量和运算符的更多相关文章
- java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符 1.Java程序结构 数据类型:确定要存储在内存中的数据的类型. 变量:是存储数据的基本单元 2.变量的概念 变 ...
- javaSE练习1——变量和运算符
一.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序.(知识点:变量和运算符综合应用): package com.test; public class t01 { public stati ...
- Shell编程基础教程2--变量和运算符
2.变量和运算符 2.1.变量的类型 本地变量:环境变量:变量替换(显示变量):位置变量:标准变量:特殊变量: 2.2.本地变量 本地变量在用户现在的shell生命周期的脚本中使用 在命令行, LOC ...
- Java2变量和运算符
课后作业:[必做题] 1√AB互换 已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序.(知识点:变量和运算符综合应用) [必做题] package com.two; public clas ...
- JavaSE基础知识总结
最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...
- Java入门(三):变量和运算符
上次谈到了Java的基本数据类型,今天接着聊Java的变量.运算符. 一.变量 1.变量的分类 变量分为成员变量.局部变量和常量,其中成员变量又分为实例变量.类变量. 2.变量的定义 语法:变量类型( ...
- 一:1.2【print&input与变量和运算符】
[路径] 绝对路径:从根目录开始链接的路径 --->cd C:\Windows\Boot\DVD\EFI\en-US 相对路径:不从根目录开始链接的路径 ----> cd Boot\DV ...
- shell脚本基础知识以及变量
一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
随机推荐
- centos7以rpm方法装mysql5.7及大坑
环境: CentOS Linux release 7.5.1804 (Core) Mysql版本: MySQL-5.7.17-1.el6.x86_64.rpm-bundle.tar 下载地址( ...
- 十五、springcloud(一)注册中心Eureka
1.Eureka的基本架构 a.Eureka Server 提供服务注册和发现 b.Service Provider 服务提供方 将自身服务注册到Eureka,从而使服务消费方能够找到 c.Servi ...
- node压缩文件夹
前几天遇到一个需求,将一个10G的文件夹打包压缩,并去除黑名单上的文件. node自带的只能压缩文件.网上看了集中方案要么对大文件操作不行,要么只能直接操作文件夹,无法对文件夹遍历筛选. 后来确定使用 ...
- 对pytorch中Tensor的剖析
不是python层面Tensor的剖析,是C层面的剖析. 看pytorch下lib库中的TH好一阵子了,TH也是torch7下面的一个重要的库. 可以在torch的github上看到相关文档.看了半天 ...
- Linux系统编程——信号
目录 信号的介绍 信号的机制 信号的编号 Linux常规信号一览表 信号的产生 终端按键产生信号 硬件异常产生信号 kill函数/命令产生信号 信号的操作函数 信号集设定 sigprocmask函数 ...
- Centos7在单用户模式下重置root密码
1.启动Centos7 ,按空格让其停留在如下界面: 鼠标上下可以选择启动内核,默认选择第一个内核开机 2.按e键进入编辑模式 e 按下e键后我们可能无法看到我们需要编辑的区域,这是因为在较新版本的C ...
- k8s学习笔记之九: Service Account
第一章.前言 每一个用户对API资源进行操作都需要通经过以下三个步骤: 第一步:对客户端访问进行认证操作,确认是否具有访问k8s权限 token(共享秘钥) SSL(双向SSL认证) ....通过任何 ...
- 8-安装Kafka
1.解压 tar -zxvf kafka_2.11-0.9.0.1.tar -C /opt/app/ 2.改权限 chown -R hadoop:hadoop /opt/app/ 3.修改配置文件 c ...
- Spring线程池的5个要素
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-// ...
- Maven CXF wsdl2java XMLGregorianCalendar类型更改
jaxb-bindings.xml配置: <?xml version="1.0" encoding="UTF-8"?> <jaxb:bindi ...