数据类型
Java是一个强类型语言,要求变量的使用要严格符合规定,如大小写区分,先定义在使用。
public class demo1 {
public static void main(String[] args) {
int num1=10;
byte num2=28;//byte的范围为-128-127
short num3=45;
long num4=45;
//浮点类型
float num5=78.3F;//在末尾需要加上FA
double num6=3.1415926;
//字节类型
char name='z';//只能打一个字符
String name2="external";//可以打较长的字符
//布尔类型
boolean flag= true;
//boolean flag= false;
}
}
注:一位有八个字节
在定义标识符时,不能以数字开头
数据类型的深入学习
public class demo2
{
public static void main(String[] args) {
//整数拓展 进制 二进制0b 八进制0 十进制 十六进制 0x
int num1=10;
int num2=0b10;
int num3=010;
int num4=0x10;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
//float类型 数字太大时会舍入,大约,接近,所以在银行中不会采用此方式。
float i=18672874827348478902489487832f;
float i1= i+1;
System.out.println(i==i1);//执行结果true
//强制类型转换
char a='A';
char b='中'; //为unicode编码 长度到65536 ,所以excel也是65536。
System.out.println((int)a);
System.out.println((int)b);
char c='\u0061'; //输出为a
System.out.println(c);
System.out.println("hello\tworld");// \t转义字符空格
System.out.println("hello\nworld");// \n换行符
}
}
数据强制类型转换
格式为 (需要转换为什么类型)a
优先级从低到高:byte,short,char<int<long<float<double,强制转换时,从低到高需要加上强制转换类型,而高到低可以直接转换,转换后精度可能会发生改变。
public class demo3 {
public static void main(String[] args) {
int money=10_0000_0000;
int year=20;
long sum=money*year;//输出结果为-1474836480,结果溢出,原因是在强制类型转换前已经溢出了,即强制类型转换没有意义
//改变后:
long sum1=money*(long)year;
System.out.println(sum);
System.out.println(sum1);
}
}
变量
局部变量、实例变量、类变量
实例变量:从属于类里面在方法的外面。如果不进行初始化,则默认为0,布尔型默认为false,除了基本类型外,都默认为空
public class demo4 {
String name;
static int salary=2500;
int age ;
public static void main(String[] args) {
// 局部变量
int i=10;
System.out.println(i);
//实例变量
demo4 demo =new demo4();
System.out.println(demo.name);
System.out.println(salary);
}
}
常量
通过final关键字设定常量。
在数据类型前的都为修饰符,修饰符不存在先后顺序
命名时,需注意类变量第二个字母大写,如lastName,需符合驼峰原则
public class demo5 {
static final double PI=3.14;//数据类型前的修饰符不区分大小写
public static void main(String[] args) {
System.out.println(PI);
}
}
运算符
1.注意:=是赋值运算符,如int a=10;就是将10赋给a
2.新建一个包机制:src-package,可以将之前的demo文件移入,但是在每个class文件中,不可以删除头部包文件的命名
3.自增自减:如自增,a++:先赋值,再自增;而++a则是先自增,再赋值。
4.在Java中,是没有2^3次方来表示幂的,表示幂时,需要调用math方法来使用
package operator;
public class Demo2 {
public static void main(String[] args) {
int a =3;
//二元运算符
int b=a++;
//a=a+1,先赋值,再自增
int c=++a;
//a=a+1,先自增,再赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
与或非逻辑运算符:&&、||、!()
public class Demo3 {
public static void main(String[] args) {
//逻辑运算符
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//通过+把字符串和结果拼接起来
System.out.println("a||b:"+(a||b));
System.out.println("!(a&&b):"+!(a&&b));//非
}
}
位运算符:
&、|、^ 异或、~非 、<<、>>:
<<表示向左移两位,>>表示向右移两位。可以较快的算出2^3的值
System.out.println(2<<3);//通过底层计算,效率非常高,不需要使用2*2*2
三元运算符:
public class Demo4 {
public static void main(String[] args) {
//三目运算符 x?y:z,如果x为真,则执行y否则执行z
int score =80;
String a=score>60?"合格":"不合格";
System.out.println(a);
}
}