一. 数据类型转换,各个数据类型之间存在着转化,即int 可以转化为 byte ,long 可以转化为 int ,
数据类型从小到大的排序依次是:
byte , short , char -> int -> long -> float -> double
在从小往大转化时,需要强制转化,但是从大向小转换时,不需要
example:
public class demo4 {
public static void main(String[] args) {
int num1 = 123123;
char num2 = num1;
System.out.println(num2);
}
}
此时无法输出,因为char类型小于int类型,需要强制转换
强制转换=(数据类型)变量名
public class demo4 {
public static void main(String[] args) {
int num1 = 12333333;
byte num2 = (byte)num1;
System.out.println(num2);
}
}
此时输出结果为21,显然是错误的。
导致这一结果的问题是,此时char类型的上线为127,而1233333显然大于127,导致了内存溢出。
注意:类型转换的几个主要问题
1.强制转换时,需要注意数据类型,不可出现内存溢出
2.Boolean不可转换成其他数据类型
3.浮点型转换成整数型时存在误差
4.当两个int类型运算时,超过int上限时,需要将其中一方先强行转化为long类型
即:
int money = 10_0000_0000;
int time = 20;
long total = money*(long)time;
System.out.println(total);
二.变量的相关知识
1.首先是,变量即相当于自己定义变量名并对其赋值,例如: int a = 100;
这定义变量a的值为100;
2.局部变量,即该变量只能在该方法中被使用
public class demo5 {
public static void main(String[] args) {
int a = 100 ;
System.out.println(a);
}
public static void total(){
System.out.println(a);
}
}
出错,不能在total中输出a的值,即a为局部变量只能在main方法中使用
3.实例变量,即在方法外定义变量,若方法内想调用时,需要new该类名,例如:
public class demo5 {
int salary = 2500;
public static void main(String[] args) {
int a = 100 ;
//变量类型 demo5 变量名 demo5
demo5 demo5 = new demo5();
System.out.println(demo5.salary);
System.out.println(a);
}
}
此例中,salary即为实例变量
4.类变量,类似于实例变量,于实例变量不同的是,在方法中调用类变量时,不需要new 类名,可直接调用,同时,在定义其前,需要加上static等,例如:
public class demo5 {
int salary = 2500;
static String name = "孙bagui";
public static void main(String[] args) {
int a = 100 ;
//变量类型 demo5 变量名 demo5
demo5 demo5 = new demo5();
System.out.println(demo5.salary);
System.out.println(a);
System.out.println(name);
}
public static void total(){
System.out.println();
}
}
5.常量,在方法外定义一常量,且该常量不可变化,定义常量时,需要在其前加final,例如
public class Demo6 {
final static String name = "孙bagui";
public static void main(String[] args) {
System.out.println(name);
}
}
三.运算符
运算符又分为算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,条件运算符,扩展赋值运算符,
具体如下:
其中,主要记住上四个,逻辑运算符的意识为,与或非
运算符的小知识:
1.%为取余,也称为模运算,具体使用如下
package operator;
public class Demo1 {
public static void main(String[] args) {
int a = 10 ;
int b = 21;
System.out.println(b%a);
}
}
结果为1
2.在整数数据类型计算时,若运算中有long类型,则结果为long类型,若没有,则结果为int类型
例如:
package operator;
public class Demo2 {
public static void main(String[] args) {
long num1 = 100000000L;
int num2 = 100000;
byte num3 = 123;
short num4 = 12;
System.out.println(num1+num2+num3+num4);
System.out.println(num2+num3+num4);
System.out.println(num3+num4);
}
}
3. 数值相等判断:
例如:
public class Demo3 {
public static void main(String[] args) {
int a = 5;
int b = 6;
System.out.println(a == b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a != b);
}
}
4. ++与--
++为累加,即 a++=a+1;++a也为a=a+1,不同点为,若b=a++,则b=a, 若b=++a,则b=a+1;
--同理;
5.幂函数的运算
其他函数的运算要使用方法类来实现,例如幂函数的运算,例如:2^3为8
在代码中要使用Math.pow来实现
double pow = Math.pow(2, 3);
System.out.println(pow);
6.逻辑运算
public class Demo6 {
public static void main(String[] args) {
//逻辑运算,即与或非
boolean a = false;
boolean b = true;
System.out.println(a&&b);//与,或A与B中有一个false,则结果为false
System.out.println(a||b);//或,若A或B中有一个true,则结果为true
System.out.println(!(a&&b));//非,则是对以上的否定
//短路算法,即当a&&b时,若a为false,则不会再去判断b是否为true,而直接输出false
//例子如下:
int c = 5;
boolean d = (c>6)&&(c++>6);
System.out.println(c);//若执行c++>6,则c最后的值为6
System.out.println(d);//结果显示5,解释了短门算法
}
}
7.位运算
package operator;
public class Demo7 {
/*
位运算符,主要是用于二进制
例如
a = 1100 0011
b = 0010 1010
则
a|b = 1110 1011 (若a为0,b也为0,则输出0,反之都为1)
a&b = 0000 0010 (若a为1,b也为1,则输出1.反之都为0)
a^b = 0001 0110 (当a与b的值相等时,输出1,反之输出0)
~b = 1101 0101 (与b完全相反)
除此之外,还有>>与<<,具体作用如下:
以下皆为二进制内计算
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
public static void main(String[] args) {
System.out.println(2<<3);//相当于将2相左移动3位
//即,<<为乘2,>>为除2
}
}
8.其他运算符
package operator;
public class Demo8 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a+=b的意思为,a=a+b;a-=b同理为a=a-b
System.out.println(a);
//三元运算符,x?y:z,意思是,若x为正则输出y,否则输出z
int x = 80;
String confidition = x>60?"great":"false";
System.out.println(confidition);
}
}
四.包机制
包的机制就是文件夹,用来存放不同的文件
若想使用别的包的数据需要使用Import 包名
通常的报名使用倒过来的公司官网,例如:www.baidu.com的包名通常为
com.baidu.www