Java 基础原理二

基础规则
  1. 关键字public被称为修饰符(access modifier),它用于控制程序的其余部分对这段代码(从public后面跟着的第一个'{'到第一个'}')的访问级别
  2. 关键字class这段程序的全部内容都包含在类中
  3. class后面跟着的'Demo'是类名。Java中的类名的命名规则为:首字母以字母开头(通常是大写),后面能够跟字母和任意数字与'_'组合,长度不限,可是不能使用Java的保留字,建议在类命名时使用驼峰命名。
  4. 源代码的文件名强烈建议与类名相同(基本全部的IDE都是这样作的)。
  5. static是静态修饰符,被标识的方法是静态的方法(更多细节后面再讲)。
  6. main方法(或称为函数)是程序的入口函数,根据Java语言规范,main方法必须声明为public(虽然在Java虚拟机规范中并无要求main方法必定是public,可是并非全部的Java解释器均可以执行非public的main方法),此外main方法必须是静态的。
  7. void用于表示该方法不须要返回值。
  8. '{'和'}'分别用于标记代码的开始和结束。
    当运行编译改程序时,Java虚拟机将从这个类的main方法开始执行,而Demo中main方法使用了System.out对象并调用了println方法,能够看出Java调用方法的语法:object.method(parameters),固然方法也能够没有参数,这依据方法的声明而定。
    在这个方法调用中,传入的参数是一个字符串'Hello,World!'。
数据类型

以前咱们提到过Java是强类型语言,也就是说咱们必须为每个变量声明一种类型。Java的数据类型可分为两种:基本数据类型和引用数据类型。在Java中有8中基本数据类型(primitive type):java

a、整数型:
byte                占 1个字节(8个bit)   范围-128——127
short               占 2个字节(16bit)    范围-2^15——2^15-1
int(默认)                     占 4个字节(32bit)    范围-2^31——2^31-1
long         		占 8个字节(64bit)    范围-2^63——2^63-1(超int范围時在後面加l,最好寫大L,小l与1太像容易混淆)
	  
b、浮点型:(小数)
float单精度		         占 4个字节(32bit)     3.4E-38——3.4E+38(书写时在后面加f,如1.2f)
	   	最多精确表示7位小数
	   	float的数据范围比long大,二者底层存储结构不一样
	     IEEE 754 规定  
	   		float:从左往右
	   				第1位表明符号位,
	    				第2-9位表明指数位,0-255,0表明0,255表明无穷大,1-254都減去127, 变为 -126——127
	  					 第9-32位表明尾数位	
	  			SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符号位,f是23bit的小数部分,exponent是指数部分)
	  			最后結果:(-1)^(sign)*1.f*2^(exponent)

double双精度(默认)  占 8个字节(64bit)     范围		最多精确表示15位小数
long double        占16个字节(128bit)		
	  
c、字符型:
char         	        占 2个字节(16bit)     范围
		  
d、布尔型:
boolean     	        沒有明确指定的大小(理论上占八分之一个字节),由于一個开关就能够決定true和false(书写時也可在后面加,但通常不加)
变量

在Java中,每个变量属于一种类型(type。在声明变量时要指定类型),示例:函数

byte a = 12;
short b = 12;
int x=(int)(9.99L);//强制类型转换
int c, w, r = 12;//一条语句能够定义多个变量
long d = 2123453553345345445l;
float e = -9.0f;
double f = 12.2;
char g = 'w';
boolean h = true;
  • 注意,在声明一个变量以后必须使用赋值对变量进行显式初始化,不能使用未初始化的变量(没法经过类型校验)
int var;
  var=1;//初始化
常量

Java中常量可分为两种:字面值常量和自定义常量code

  • 字面值常量:
字符串常量	  用""括起来的内容
 整数常量	   全部整数
 小数常量	   全部小数,操做小数有必定的弊端,小数位不够精确(float和double的特殊数据存储结构)
 字符常量	   用单引号括起来的内容,只能放单个数字,字母或符号(单个汉字也能够)
 布尔常量	   只有true和flase
 枚举常量	   enum  枚举类型名{常量1,常量2,常量3,.......};
 空常量		    null
 
 枚举类型的使用:
 enum Size{SMALL,MEDIUM,LARGE};
 Size s=Size.MEDIUM;
  • 自定义常量:被final关键字修饰的变量
final int A=1;

final表示这个变量只能被赋值一次,且被赋值以后就不能更改了,通常来讲常量名使用大写(注意const是Java的保留字,可是目前并无被使用)对象

运算符

运算符:对常量和变量进行操做的符号。Java的运算符与C基本一致(运算符的优先级别也和C一致,在此再也不赘述):字符串

运算符:对常量和变量进行操做的符号

a、算术运算符:一元运算符、二元运算符
  + ,- ,*,/,%,++, --
  ++、--:都是单独使用 
 整数相除只能获得整数,若是想获得小数,能够把数据(至少其中一个)变成浮点型
 %:任何正整数%2结果不是0就是1,能够用来切换条件
 
b、 赋值运算符
  基本赋值运算符:=
  扩展的赋=值运算符:+=,-=,/=,%=(自动类型转换)
  
c、关系运算符  
  ==,<=,<,>,>=,!=(结果为布尔类型)
  
d、逻辑运算符
	&,|,^,!
  &&、||具有短路的效果(左边为false右边就不执行了;左边为true右边就不执行了)

e、位运算符
	&、|、^、~(按位取反)、>>>(左补齐0)、>>(保留符号位)、<<(右补齐0)
  a^b^b =a;
f、三元运算符
	(关系表达式)?表达式1:表达式2

运算符示例,你能够运行一下:虚拟机

System.out.println(-13%5);//结果-3
System.out.println(b1++);//结果2
System.out.println(++b2);//结果4
int x=5,y=6,z=8;
x=x++ + ++x + x+12;// ++、--:放在操做数前面时,先自增自减再参与运算;在操做数后面时,先运算再自增或自减
System.out.println(x);
System.out.println(!true);
System.out.println(x>2&x<32);
System.out.println(x>2|x<12);
System.out.println(x>2^x<30);//异或,相异为真
System.out.println(2>3?1:2);

//不使用第三方变量交换变量值
x=x+y;
y=x-y;
x=x-y;//有可能会超出数据范围,损失精度
	
x=x^y;
y=x^y;
x=x^y;//
//其实仍是使用第三个变量的最好。。。
数学函数与常量

Math类包含了各类各样的数学函数,例如:数学

double x=Math.sqrt(4);//4^2

若是你须要在程序中频繁使用Math这个类,可能会对在方法前加上Math感到厌烦,此时你能够这样作:it

import static java.lang.Math.*;
此时在程序中,你能够直接调用:
System.out.println("4^2"+sqrt(4));
相关文章
相关标签/搜索