目录
兄弟们,接着上一篇继续,
一、数据类型与运算符
1. 变量和类型
1.8 布尔类型变量(boolean,没有明确规定大小)
1.9 字符串类型变量(String)
字符串的 + 操作, 表示字符串拼接
转义字符用法
1.10 变量的作用域
1.11 变量的命名规则
1.12 常量
1.12 理解类型转换
1.14 int 和 String 之间的相互转换
二. 运算符
2.1 算术运算符
%(取余、求模、取模)
增量赋值运算符 += -= *= /= %=
自增/自减运算符 ++ --
2.2 关系运算符
2.3 逻辑运算符(重点)
2.4 位运算符
2.5 移位运算
2.6 条件运算符
总结:
基本语法格式:
boolean 变量名 = 初始值;
代码如下:
打印结果:
在Java类型当中:boolean只有两个取值,要么是ture 要么是false,不能有其他的值
注意事项:
1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.
把一些字符放到一起就构成了字符串。
基本语法格式:
String 变量名 = "初始值";
代码如下:
注意事项:
1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值.
2. 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释).
Java数据类型分为两种:
一,基本数据类型,
基本数据类型又分为:1,整数(byte、short、int、long)2,浮点数(float、double)3,字符(char)4,布尔类型(boolean)
二,引用类型:
引用类型又分为:1,String,2,数组,3,类,4,接口,5,枚举.....(引用类型就是看变量里面存储的是不是地址)
public class TestDemo { public static void main(String[] args) { String str = "hello"; System.out.println(str); //注意问题 System.out.println("hello"+"world");//打印结果:helloworld,+代表的是拼接 System.out.println("hello"+10+20);//打印结果:hello1020,其他数据类型和字符串使用+拼接结果就是一个字符串 System.out.println(10+20+"hello");//打印结果:30hello,因为先完成了数字相加,在于字符串完成拼接 System.out.println("hello"+(10+20));//打印结果:hello30 System.out.println(10+""+20+"hello");//打印结果:1020hello } }
打印结果:
打印结果:
转义字符有很多, 其中几个比较常见的如下:
打印结果:
也就是该变量能生效的范围, 一般是变量定义所在的代码块(大括号)
变量分为局部变量和成员变量。
成员变量又分为普通成员变量和静态成员变量(定义在类的内部,方法的外部。)(到类和对象的时候细讲)
局部变量作用域 :
public static void main2(String[] args) {
{
int a = 10;//a是局部变量,它的作用域就是包含这个变量的花括号当中
}
System.out.println(a);//这样也不行,在花括号里面我们才能知道a是谁,出了花括号没法知道a是谁,所也没办法打印
}
public static void main3(String[] args) {
System.out.println(a);//打印打印不了a的结果
}
}
找作用域的时候,找花括号就可以了
在Java当中没有所谓的全局变量的概念
硬性指标:
1. 一个变量名只能包含数字, 字母, 下划线
2. 数字不能开头.
3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.
注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做.
软性指标:
1. 变量命名要具有描述性, 见名知意.
2. 变量名不宜使用拼音(但是不绝对).
3. 变量名的词性推荐使用名词.
4. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大 写
小驼峰命名示例:
int maxValue = 100;
String studentName = "张三";
常量分为两种:
1.字面值常量:
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 字面值常量, 双引号中可以有多个字符.
2.final 关键字修饰的常量 :
A习惯大写
但如果写法是下面这样:
编译就会报错,提示 无法为最终变量a分配值
常量不能在程序运行过程中发生修改.
变量:程序运行的时候,可以改变的量,在程序运行的时候才能知道变量的值是多少
常量:在程序的运行中不可以改变的量 ,在程序编译的时候就已经确定值是多少了
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.
public static void main(String[] args) { int s = 10; long b = s;//四个字节的变量赋给八个字节的变量不会有问题 System.out.println(s); long l = 12; //八个字节的变量无法存放在四个字节的变量中, int c = l;//为什么一个int类型的变量存不下一个12?因为程序在编译的时候,l是变量,并不清楚值是多少 // 只有在运行的时候才能知道是12,所以编译器就直接报错了 //看例子 long n = 1111111111111121112l; int a = n;//如果n里面是放的这样的一个值,int是肯定存放不下的,所以会报错 }
结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.
如果非要把long类型的值放到int类型中,只能强制类型转换:
int 和 boolean 相互赋值
int 和 boolean 是毫不相干的两种类型, 不能相互赋值.
int字面值常量 给 byte 赋值
byte 表示的数据范围是 -128 -> +127, 128 已经超过范围, 而 127 还在范围之内
类型转换小结
1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型.
2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失.
3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查.
类型提升小结:
1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.
String也是一个类,valueOf是它的一个方法,相当于这个类的一个功能,把参数传过去这个方法就会把参数转换成字符串反馈。
把String转换成int:
基本类型对应的类类型就叫做包装类,Integer是int对应的包装类,把基本的int类型变成一个类了,类里面有方法,一个类里面可能有若干的方法,相当于把基本数据类型变成了包装类类类型,在类里面可以提供方法供我们使用。这就是包装类的优点,它能够做到我们简单类型做不到的,它具备了更多更丰富的功能供我们来操作一些数据改变一些数据。
这八种基本数据类型都有包装类,有俩种比较特殊:int->对应的包装类Integer,char->Charactr,其余的都是首字母大写。
基本四则运算符 + - * / %
规则比较简单, 值得注意的是除法:
0 不能作为除数 int / int 结果还是 int
% 就是去余数
跟C语言是完全一样的
使用关系运算符其结果就是一个布尔值
逻辑运算符主要有三个: && || !
打印结果
位运算符主要有四个: & | ~ ^
移位运算符有三个: << >> >>> 都是按照二进制位来运算
1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义
条件运算符只有一个: 表达式1 ? 表达式2 : 表达式3(都是布尔表达式)
表达式1为真,结果就是表达式2。表达式1为假,结果就是表达式3
上面就是今天要讲的内容,简简单单给大家介绍了Java的一些基础知识,大家有疑问的话可以随时问我或者指出来,我都会虚心学习改正,也希望大家能更快更早的掌握到自己想要的知识,我会一直坚持在前线!!!!!后续不会停更......让我们共同成长