Day3 变量 运算符 及运算符的优先级
变量
什么是变量: 可以变化的量
Java 是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单位,其要素包括变量名,变量类型,作用域。
注意事项:
每个变量都有类型, 类型可以是基本类型,也可以是引用类型。
变量名必须是合法标识符。
变量声明是一条完整语句,每一个声明必须使用分号隔开。
public class Demo05 {
public static void main(String[] args) {
// int a, b, c
//int a=1,b=2,c=3; 程序可读性
int a = 1 ;
int b = 2 ;
int c = 3 ;
String name = "xiaoming" ;
char x = 'X';
double pi = 3.14 ;
}
}
变量作用域
类变量
实例变量
局部变量
public class Demo07 {
//类变量 static
static double salary = 2500;
// 属性:变量
//实例变量:从属于对象;如果不自行初始化,这个类型默认值为 0 0.0 u0000
// 布尔值:默认为false
//除了基本类型,其他都默认值为null;
static String name;// null static静态
static int age; // 0
// main 方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值
int i = 10;
System.out.println(i);
// 变量类型 变量名字=new Demo07();
Demo07 demo07 = new Demo07();
System.out.println(Demo07.age);
System.out.println(Demo07.name);
//类变量 static
System.out.println(Demo07.salary);
}
}
常量
常量:初始化后不能再改变的值!不会变动的值。
所谓常量可以理解为一种特殊的变量,它的值被设定后,在程序运行中不允许被改变。
final 常量名=值;
final double PI= 3.14;
常量名一般使用大写字符。
public class Demo08 {
// 修饰符,不区分前后顺序
static final double PI = 3.14;
final static double PI2 = 3.14;
public static void main(String[] args) {
System.out.println(PI);
System.out.println(PI2);
}
}
变量的命名规范
所有变量、方法、类名:见名如意;
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写。 lastName
局部变量:首字母小写和驼峰原则;
常量:大写字母和下划线 MAX_VALUE;
类名: 首字母大写和驼峰原则 Man GoodMan;
方法名:首字母小写和驼峰原则:run(), runRun();
//便于阅读为基础 编写规范
运算符
java支持如下的计算符
算术运算符 :+, -, *, /, %(取余 模运算), ++, --,
赋值运算符:=
关系运算符:>, <, >=,, <=, ==, !=(不等于),instanceof,
逻辑运算符:&&(与),||,(或),!(非)
位运算符:&,|, ^, >>, <<, >>> (了解!!!)
条件运算符:? :
扩展赋值运算符:+=, -+, *=, /+
算术运算
package operator;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b); // 0.5 取整为0了
System.out.println(a/(double)b); // 0.5 强转 double
}
}
赋值运算
package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 123123123L;
int b = 123;
short c = 10;
byte d = 8 ;
System.out.println(a+b+c+d); // long类型 有一个为long就为long 自动转换成最高类型
System.out.println(b+c+d); // int型
System.out.println( c+d); // int型
}
}
关系运算
package operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果 : 正确 错误 布尔值 true false
int a = 10;
int b = 20;
int c = 21;
System.out.println(c%a); // 取余 1 20/2 2....1
System.out.println(a>b); // false
System.out.println(a<b); // true
System.out.println(a==b); // false
System.out.println(a>=b); // false
System.out.println(a!=b); // true
}
}
//++a a=a+1;
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减 (一元运算符)
int a = 3;
int b = a++;
//a++ a=a+1; 执行代码前先给b赋值运算后在执行加1
System.out.println(a);// 4
//++a a=a+1; 执行代码前先自增
int c = ++a;
System.out.println(a); // 5
System.out.println(b); // 3
System.out.println(c); // 5
//幂运算 2^3=2*2*2=8 //很多运算我们会使用一些工具类来操作
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
注意a++ 与++a的不同 还有一些用math工具计算的操作
逻辑运算
package operator;
public class Demo05 {
//逻辑运算符
public static void main(String[] args) {
// 与(and) 或(or) 非 (取反)
boolean b = false;
boolean a = true;
System.out.println("a && b:"+(a&&b)); // 逻辑与运算: 两个都为真 结果为真 一个为假则假 false
System.out.println("a || b:"+(a||b));// 逻辑或运算: 两个变量有一个为真则为真 true
System.out.println("! (a && b):"+!(a && b));//如果为真则变为假,为假则变为真 true
//短路运算
int c = 5;
boolean d = (c<4) && (c++<4); // 不执行为短路为5 执行得为6 因为短路所以为5
System.out.println(d);
System.out.println(c);
}
}
位运算
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
---------------------------------
A&B = 0000 1100 上下对应如果上下都为11才1
A|B = 0011 1101 上下对应有一个为1则为1
A^B = 0011 0001 上下对应相同为0不相同为1
~B = 1111 0010 取反
2*8=16 怎么运算最快? 2*2*2*2*2*......
位运算 效率极高!!
<< 左移 *2
>>右移 /2
二进制
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
扩展运算
package operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; // a=a+b
a-=b; // a=a-b
System.out.println(a);
// 字符串连接符 +
System.out.println(a+b); //30
System.out.println(""+a+b); // 1020 先出现String类型会将另一个转换成字符串类型、 先""+a 后+b
System.out.println(a+b+""); //30 string在后面出现 则计算前面a+b结果后加"" 注意30也是string型
}
}
三元运算
package operator;
// 三元运算符
public class Demo08 {
public static void main(String[] args) {
// x? y : z
// 如果x==true 则结果为y , 否则为z
int score = 80;
String type =score < 60? "不及格":"及格"; // 必须掌握
// if
System.out.println(type);
}
}
运算符的优先级 ()里最优先
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | «、»、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
Day3 变量 运算符 及运算符的优先级的更多相关文章
- 变量查询,运算符优先级,if语句
1.三个关联表的查询 use 新建 create table teacher(tcode int primary key,lesson char(10),age int,birth datetime) ...
- python学习Day3 变量、格式化输出、注释、基本数据类型、运算符
今天复习内容(7项) 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别 ...
- JavaScript中涉及得运算符以及运算符的优先级
在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符.在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些 *说到了运算符,就不得不说运算符的优先级.下面我来列一下这些运 ...
- C++语言运算符的功能、优先级和结合性
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -& ...
- 变量和数据类型&运算符
变量和数据类型&运算符 变量 变量的作用:用来存储数据 变量命名的规范:字(字符串)下(_下划线)美($)人(¥) 数 (可以包括数字)骆驼 有意义(可以以字母,下划线,美元符号,人民币符号开 ...
- (4)javascript的运算符以及运算符的优先级
运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...
- 003-Python3-基础语法-运行方式、代码基础要求、运算符[算数运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符]、运算符优先级
一.基础语法 参看地址:https://www.runoob.com/python3/python3-tutorial.html 1.1.运行方式 1.文件方式 编写一个hello.py文件, pri ...
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- 转战JS(1) 初探与变量类型、运算符、常用函数与转换
转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不 ...
- 【Python】2.19学习笔记 成员运算符,身份运算符,运算符优先级
成员运算符 暂时不会用,等学链表时再补充 \(in\) 与 \(not in\) \(in\):如果在指定序列中找到指定值,则返回\(true\) \(not in\):如果在指定序列中找到指定值,则 ...
随机推荐
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- C#搞跨平台UI,封装Cef作为Cpf的控件支持Windows,Linux,Mac
终于封装完成了,采用离屏渲染方式,支持JS和C#互相调用,C#方法自动绑定到JS里,中文输入有自动调整输入法位置. 基于开源的CefGlue 移植,本来想用CefSharp,不过这个里面有很多C++的 ...
- dataguard日志损坏处理
===== 问题 ===== 日志损坏无法应用日志(开启MRP应用系统会因无法应用日志而关闭) Completed: ALTER DATABASE RECOVER MANAGED STANDBY DA ...
- Spring Boot WebFlux-06——WebFlux 整合 Redis
第06课:WebFlux 整合 Redis 前言 上一篇内容讲了如何整合 MongoDB,这里继续讲如何操作 Redis 这个数据源,那什么是 Reids? Redis 是一个高性能的 key-val ...
- 深入理解Spring的两大特征(IOC和AOP)
一.spring 的优点? 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很 ...
- redis为什么要提供pipeline功能
通常我们用redis做接口缓存后,查询接口的性能就能提升到ms级别: 但是redis是纯内存操作啊,总不至于要到ms吧,根据官方的 benchmark 单实例也是能抗 7w+ qps 也就是说单个re ...
- noip模拟7[匹配·回家·寿司]
这次考试状态好像还是没有回来,只拿了55pts,还全是第一题的功劳,就是一个小KMP,然后还让我给打错了 就很难受,while打成了if,然后wa掉45分考完立马拿回来了,悔死了,害 第二题爆零了,为 ...
- 机器人路径规划其一 Dijkstra Algorithm【附动态图源码】
首先要说明的是,机器人路径规划与轨迹规划属于两个不同的概念,一般而言,轨迹规划针对的对象为机器人末端坐标系或者某个关节的位置速度加速度在时域的规划,常用的方法为多项式样条插值,梯形轨迹等等,而路径规划 ...
- 在Visual Studio 中使用git——同步到远程服务器-下(十二)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...
- 学会使用Python的threading模块、掌握并发编程基础
threading模块 Python中提供了threading模块来实现线程并发编程,官方文档如下: 官方文档 添加子线程 实例化Thread类 使用该方式新增子线程任务是比较常见的,也是推荐使用的. ...