变量

什么是变量: 可以变化的量

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 变量 运算符 及运算符的优先级的更多相关文章

  1. 变量查询,运算符优先级,if语句

    1.三个关联表的查询 use 新建 create table teacher(tcode int primary key,lesson char(10),age int,birth datetime) ...

  2. python学习Day3 变量、格式化输出、注释、基本数据类型、运算符

    今天复习内容(7项) 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别 ...

  3. JavaScript中涉及得运算符以及运算符的优先级

    在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符.在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些 *说到了运算符,就不得不说运算符的优先级.下面我来列一下这些运 ...

  4. C++语言运算符的功能、优先级和结合性

    优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -& ...

  5. 变量和数据类型&运算符

    变量和数据类型&运算符 变量 变量的作用:用来存储数据 变量命名的规范:字(字符串)下(_下划线)美($)人(¥) 数 (可以包括数字)骆驼 有意义(可以以字母,下划线,美元符号,人民币符号开 ...

  6. (4)javascript的运算符以及运算符的优先级

                                    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...

  7. 003-Python3-基础语法-运行方式、代码基础要求、运算符[算数运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符]、运算符优先级

    一.基础语法 参看地址:https://www.runoob.com/python3/python3-tutorial.html 1.1.运行方式 1.文件方式 编写一个hello.py文件, pri ...

  8. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

  9. 转战JS(1) 初探与变量类型、运算符、常用函数与转换

    转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不 ...

  10. 【Python】2.19学习笔记 成员运算符,身份运算符,运算符优先级

    成员运算符 暂时不会用,等学链表时再补充 \(in\) 与 \(not in\) \(in\):如果在指定序列中找到指定值,则返回\(true\) \(not in\):如果在指定序列中找到指定值,则 ...

随机推荐

  1. deeplearning量化

    deeplearning量化 量化配置 通过字典配置量化参数 TENSORRT_OP_TYPES = [ 'mul', 'conv2d', 'pool2d', 'depthwise_conv2d', ...

  2. TensorFlow编程结构

    TensorFlow编程结构 TensorFlow 与其他编程语言非常不同. 首先通过将程序分为两个独立的部分,构建任何拟创建神经网络的蓝图,包括计算图的定义及其执行.起初这对于传统程序员来说看起来很 ...

  3. TVM vs TensorRT比较

    TVM vs TensorRT比较 如果理解正确的话,TensorRT和TVM会加快预测速度. TensorRT优化预测GPU和TVM优化预测几乎所有平台支持GPU,ARM,Mobile... 两者在 ...

  4. springboot异常错误处理

    1.在有模板引擎的情况下: springboot会默认找 templates/error/错误状态码.html,所以我们要定制化错误页面就可以到templates/error下创建一个[对应错误状态码 ...

  5. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

  6. 四、SSL虚拟证书

    沿用练习三,配置基于加密网站的虚拟主机,实现以下目标: 域名为www.c.com 该站点通过https访问 通过私钥.证书对该站点所有数据加密 4.2 方案 源码安装Nginx时必须使用--with- ...

  7. 【dog与lxy】8.25题解-necklace

    necklace 题目描述 可怜的dog最终还是难逃厄运,被迫于lxy签下城下之约.这时候lxy开始刁难dog. Lxy首先向dog炫耀起了自己的财富,他拿出了一段很长的项链.这个项链由n个珠子按顺序 ...

  8. PRVF-0002: could not retrieve local nodename报错解决

     

  9. .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  10. 35、sudo权限设置

    提示:sudo的介绍在"13.linux中用户和用户组"中有详细介绍: (1)简历里要加上如下项目经验: 服务器用户权限管理改造方案与实施项目 日期: 在了解公司业务流程后,提出权 ...