JAVA数据类型与运算符

JDK:Java的开发工具包,内置JRE

JRE:

javac命令(编译):*.java(源文件)===>*.class

java命令(运行):*.class(二进制编译文件)===>JVM   (笔试可能会考)

1.变量和类型

 1.1 整型变量(int)

        int型变量占4个字节,表示的数据范围是-2^31---2^31-1,默认值为0;

        long型变量占8个字节,表示的数据范围是-2^63---2^63-1,默认值为0;

        局部变量必须赋值后再使用

int a = 10;
long b = 10L(l);

       查看整型最大值和最小值:

System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);

System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);

 1.2 浮点型变量

        float型变量占4个字节,double型变量占8个字节,默认值为0.0;

float c = 1.0f(F);
double d = 1.0;

 1.3 字符型变量

        char型变量占两个字节,可以与int型通过ASCII码进行转换,默认值为\u0000(空格)

char ch = ' 任意一个字符 ';

1.4 字符串类型变量(引用数据类型)

String name = "zhangsan";

        字符串的+操作,表示字符串拼接,也可以进行字符串与整数的拼接;

        用于双引号中的常见转义字符:

转义字符解释
\n换行
\t水平制表符
\'单引号
\"双引号
\\反斜杠

1.5 变量的命名规则

硬性指标 :
1. 一个变量名只能包含数字 , 字母 , 下划线
2. 数字不能开头 .
3. 变量名是大小写敏感的 . num Num 是两个不同的变量 .
注意 : 虽然语法上也允许使用中文 / 美元符 ($) 命名变量 , 但是 不推荐这样做 .
软性指标 :
1. 变量命名要具有描述性 , 见名知意 .
2. 变量名不宜使用拼音 ( 但是不绝对 ).
3. 变量名的词性推荐使用名词 .
4. 变量命名推荐 小驼峰命名法 , 当一个变量名由多个单词构成的时候 , 除了第一个单词之外 , 其他单词首字母都大写.
    类命名:大驼峰命名法:从第一个开始每一个单词首字母大写;
    项目/包命名:全小写,多个单词用_隔开;

    常量:单词全部大写,多个单词用_隔开。

1.6 常量

10       // int 字面值常量 ( 十进制 )
010     // int 字面值常量 ( 八进制 ) 由数字 0 开头 . 010 也就是十进制的 8
0x10   // int 字面值常量 ( 十六进制 ) 由数字 0x 开头 . 0x10 也就是十进制的 16
10L     // long 字面值常量 . 也可以写作 10l ( 小写的 L)
1.0      // double 字面值常量 . 也可以写作 1.0d 或者 1.0D
1.5e2  // double 字面值常量 . 科学计数法表示 . 相当于 1.5 * 10^2
1.0f     // float 字面值常量 , 也可以写作 1.0F
true     // boolen 字面值常量 , 同样的还有 false
'a'        // char 字面值常量 , 单引号中只能有一个字符
"abc"   // String 字面值常量 , 双引号中可以有多个字符 .

final关键字修饰的常量,不能在程序运行过程中发生修改。

final int a = 10;

a = 20;  //编译错误

1.7 类型转换

Java作为一个强类型编程语言,不同类型之间的变量相互赋值时,有严格的校验

int 和 long/double 相互赋值:

小类型转化为大类型,涉及运算会自动提升类型,即小类型可以隐式转化为大类型

大类型转化为小类型,强制转换,可能会丢失精度,进行强制转换后下面的值从10.5为10;

int a = 0;
double b = 10.5;
a = (int)b; //强制转换

int 和 boolean (默认值为false)不能相互赋值!!

int 字面值常量给 byte 赋值:

byte 字节类型占一个字节,进行IO编程时会用到:文件输入输出、网络传输等等

int 字面值常量给 byte 赋值,若该值在byte保存范围内(-128---127)可以直接赋值,否则编译出错;当进行byte之间的运算时,JVM内部会将byte提升为int进行运算

byte a = 10;
byte b = 20;
byte c = (byte)(a+b); //强转

int 和 char 类型转换:根据默认Unicode编码,16进制

int 和 String 之间的相互转换(!!)

int 转成 String

int num =10;
//方法一
String str1 = num + "";
//方法二
String str2 = String.valueOf(num);

String 转成 int

String str = "100";
//非纯数字组成的字符串转Int会报异常
int num = Integer.parseInt(str);

二. 运算符   

2.1 算术运算符

基本四则运算符:  +   *  /  %
增量赋值运算符 += - = *= /= %=
自增 / 自减运算符 ++ --

2.2 关系运算符

关系运算符主要有六个 : ==   !=   <   >   <=   >=
注意:关系运算符的表达式返回值都是 boolean 类型 .

2.3 逻辑运算符(重点)

逻辑运算符主要有三个 : &&   ||   !
注意 : 逻辑运算符的操作数 ( 操作数往往是关系运算符的结果 ) 和返回值都是 boolean。

短路求值:&& || 遵守短路求值的规则

对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式 .
对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式 .

2.4 位运算符

按位与 & : 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0;
按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1;
按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0;
按位异或 ^: 如果两个数字的二进制位相同 , 则结果为 0, 相异则结果为 1。

2.5 移位运算

移位运算符有三个 : <<   >>   >>>
左移 << : 最左侧位不要了 , 最右侧补 0; 左移 1 , 相当于原数字 * 2. 左移 N , 相当于原数字 * 2 N 次方。
右移 >> : 最右侧位不要了 , 最左侧补符号位 ( 正数补 0, 负数补1);右移 1 , 相当于原数字 / 2. 右移 N , 相当于原数字 / 2 N 次方。
无符号右移 >>>: 最右侧位不要了 , 最左侧补 0。

2.6 条件运算符

条件运算符只有一个 : 表达式1 ? 表达式 2 : 表达式 3
表达式 1 的值为 true , 整个表达式的值为 表达式 2 的值 ; 表达式 1 的值为 false , 整个表达式的值为 表达式 3 的值。(1真值2,否则值3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值