Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。 1.所有标识符都应该以字母(A-Z或者a-z),美元符($)\或者下划线()开始 2.首字符之后可以是字母(A-Z或者a-z),美元符、下划线()或数字的任何字符组合 不能使用关键字作为变量名或方法名 标识符是大小写敏感的
//合法标识符举例:age、$salary、_value、__1-value //非法标识符举例:123abc、-salary\#abc public static void main(String[] args){ String 王者荣耀 = "最强王者"; System.out.println(王者荣耀); }
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low.
强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
public class Demo01{ public static void main(String[] args){ String a;//必须赋值 System.out.println(a);//报错 } }
弱类型语言(javascript) 要求变量的使用符合规定
变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}]; //数据类型 变量名=值 可以使用逗号隔开来声明多个同类型变量。 //int a=1,b=2,c=3; //int a,b,c;//程序可读性 int a; int b; int c;
1.每个变量都有类型,类型可以是基本类型,也可以是引用类型。 2.变量名必须是合法的标识符。 3.变量名声明是一条完整的语句,因此每一个声明都必须已分号结束
public class Demo08{ //类变量 static static double salary = 2500; //属性:变量 //实例变量:从属于对象:如果不自行初始化,这个类型的默认值 //布尔值:默认是false //除了基本类型,其余默认值的都是null String name; int age; //main方法 public void main(String[] args){ //局部变量:必须声明和初始化值 int i; System.out.println(i);//报错 //变量类型 变量名字=new Demo08(); Demo08 demo08 = new Demo08(); demo08.add(); System.out.println(demo08.age);// System.out.println(demo08.name);//null } //类变量 static //其他方法 public void add{ } }
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。 所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变
final 常量名=值; //修饰符,不存在先后顺序 public private static final double PI = 3.14; public static void main(String[] args){ System.out.println(PI);//引用 } //常量名一般使用大写字符
所有变量、方法、类名://见名知意 类成员变量:首字母小写和驼峰原则:monthSalary 局部变量:首字母小写和驼峰原则 常量:大写字母和下划线:MAX-VALUE 类名:首字母大写和驼峰原则:Man,GoodMan 方法名:首字母小写和驼峰原则:run(),runRun();
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数. 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示.1B(byte,字节) = 8bit(位) 字符:是指计算机中使用的字母、数字、字和符号.
基本类型(primitive type) 数值类型:1.整数类型:byte占1个字节 short占2个字节 int占4个字节 long占8个字节
2.浮点类型:float占4个字节 double占8个字节
3.字符类型:char占2个字节
boolean类型:**占1位其值只有true和false两个**
引用类型(reference type) 引用数据类型(Reference Type) 类、接口、数组
public class A{ public static void main(String[] args){ //八大基本数据类型 //整数 int num1 = 10;//最常用 byte num2 = 20; short num3 = 30; long num4 = 30L;//Long类型要在数字后面加个L //小数浮点数 float num5 = 20.1f;//Float类型要在数字后面加个F double num6 = 3.1415926; //字符 char name = "A";//只能写一个 //字符串,String不是关键字,是个类 String namea = "zzh" //布尔值:代表是非 boolean flag = true; //boolean flag = false; } }
//转义字符 // \n 换行 // \t制表符 //.... system.out.println("Hello\nWorld") //输出:Hello World
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低 -------------------------------> 高 byte,short,char->int->long->float-double //小数优先级大于整数
运算中,不同类型的数据先转化为同一类型,然后进行运算。 强制类型转换 自动类型转换
public class Demo05{ public static void main(String[] args){ int i = 128; byte b = (byte)i;//内存溢出 double c =i; //强制转换 (类型)变量名 高--低 //自动转换 低--高 System.out.println(i); run:128 System.out.println(b); -128 System.out.println(c); 128.0 char c = 'a'; int d = c+1; System.out.println(d); /* 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者精度问题! */ } }
//操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; System.out.println(money); int years = 20; int total = money*years;//计算的时候溢出了 long total2 = money*years;//默认是int,转换之前已经存在问题了 long total3 = money*((long)years)//先把一个数转换为long类型 System.out.println(total3) Run:1000000000 -1474836480 20000000000
##
Java语言支持如下运算符:
务必掌握
算术运算符:+, -, *, /, ++, - -
赋值运算符:= 关系运算符:> , < , <= , >= ,== , !=instanceof 逻辑运算符:&&,||,!
位运算符:&, | , ^, ~, >> , <<<(了解!!!) 条件运算符?: 扩展赋值运算符:+=, -=, *=, /=
package ....//包名 public class Demo01{ public static void main(String[] args){ //二元运算符 //IDEA.ctrl+D:复制当前行到下一行 int a=10; int a=20; int a=25; int a=25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b);//整数类型 Run:38 -10 cast(转换) 200 0 } }
public class Demo04{ public static void main(String[] args){ //++ -- 自增,自减 一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 //a=a+1; System.out.println(a); //a++ a=a+1 int c = ++a;//++a a=a+1;//执行完这个代码前,先自增,再赋值 System.out.println(a);//3 System.out.println(b);//3 System.out.println(c);//5 } }
public class Demo05{ public static void main(String[] args){ boolean a = true; boolean b = false; 1 System.out.println("a&&b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为true 2 System.out.println("a||b:"+(b||a));//逻辑或运算:两个变量有一个为真,则结果才true 3 System.out.println("!(a&&b):"+!(b&&a));//如果是真,则变为假,如果是假则变为真 Run:1.//a && b:false 2.//a || b:true 3.//!(a&&b):true //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d);false System.out.println(c);5,没有自增 } }
2左移3位
public class a{ 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);//30 //字符串连接符 + , String System.out.println(a+b); System.out.println(""+a+b)//1020 System.out.println(a+b+"")//30 } }
public class Demo08{ public static void main(String[] args){ //x?y:z //如果x==true,则结果为y,否则结果为z int score = 80; String score = score<60?"不及格":"及格";//必须掌握 double a = -1; //String type = a>0?"恋爱的酸臭":"单身狗的清香" }