【标识符】java
Java对各类变量、方法和类等要素命名时使用的字符序列。编程
Java标识符命名规则:函数
<1>由字母、数字、下划线"_"和美圆符"$"组成(不能有空格);布局
<2>以字母、下划线、$开头;编码
<3>对大小写敏感,长度无限制。spa
【关键字】操作系统
Java关键字都是小写。code
goto和const虽然从未被使用,但也做为Java关键字保留。对象
【Java常量】排序
Java的常量用字符串表示,区分为不一样的数据类型:
<1>整型常量:123
<2>实型常量:1.23
<3>字符常量:'a'
<4>逻辑常量:true false
<5>字符串常量:"hello"
【注意】"常量"还会用在其余语境中,表示值不可变的变量(--变量赋值后,不容许改变,例如final)。
【变量】
<1>Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和做用域。
<2>Java程序中每一个变量都有特定的数据类型,在使用前必须对其声明,格式以下:
type varName = value ;
【注意】
变量其实是内存上的一小块区域,使用变量名访问这块区域,所以,每一个变量使用前必需要先申明[声明],而后必须进行赋值[填充内容],才能使用。
【分类】
局部变量:方法或语句块内部定义的变量(方法参数列表中的形参也属于局部变量)。
成员变量:方法外部、类的内部定义的变量。
【注意】
类外面(即与类对应的大括号外面)不能有变量声明,即不存在C++中的全局变量的概念,缘由在于Java是纯面向对象的语言,只要出现变量,必须是在对象class内部声明。
【程序执行过程】
<1>放置在硬盘上的可执行文件只有加载到内存中才能运行(加载后存放在内存的cod segment中);
<2>实际代码的运行还须要借助于操做系统的代码(已经加载在内存中);
<3>在code segment中找到main方法开始执行程序时,须要其他三部分的支持(heap、stack、data segment);
【数据类型】
注:逻辑型--布尔型 文本型--字符型
【内存中如何区分不一样数据类型】
<1>在内存中所占大小不一样;
<2>在内存中占用空间相同的,经过内部01布局区分。
【布尔型】
boolean类型数据只容许取true、false,不能够以0或非0的整数替代true和false,这点和C语言不一样。
【字符型】
Java字符采用Unicode编码(全球语言统一编码),每一个字符占两个字节,于是可用十六进制形式表示。
char c = '\u0061'; //这里\u表示Unicode编码
char c =125;//直接给出ASCII码值也能够
【整数类型】
<1>Java各整数类型有固定的表数范围和字段长度,其不受具体操做系统的影响,以保证Java程序的可移植性。
(这也是C语言编译后不可移植的缘由)
<2>Java语言整型常量有3种表示形式:
a>十进制整数;
b>八进制整数(要求以0开头);
c>十六进制整数(要求以0x或0X开头)。
<3>Java语言的整型常量默认为int型,声明long型常量能够在后面加上"l"或"L"。
int i = 88888888888888888L;
//必须加L,不然会出错
【注意】
<1>在java中没有无符号的整数(C++里面有unsigned int类型)。
<2>以byte为例,Java中byte单独拿出一位做为该数的符号(即正负数),所以表示的范围为:-128~(128-1)。
【浮点类型】
<1>Java浮点类型有固定的表数范围和字段长度,不受平台影响。
<2>有两种表示方式:
a>十进制形式:3.14
b>科学计数法形式:3.14e2
<3>浮点类型默认是double类型,若是要声明一个float类型,则需在数字后面加上f或F。
float f = 12.3f;
//必须加上F,不然出错
注:计算机中浮点数是离散的,实际中是连续的,所以因为计算机精度的问题,形成存在偏差。
所以在实际程序中不多会涉及到浮点数之间的比较,而把其差做为比较对象。
【数据类型转换】
<1>boolean类型不能够转换为其余数据类型;
<2>整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循如下原则:
a>容量小的类型自动转换为容量大的类型,数据类型按照容量大小排序为:
(这里的容量大小指的是表示的数的大小,而不是在内存中所占大小,好比long和float)
byte,short,char->int->long->float->double
byte,short,char之间不会相互转换,它们三者在计算时首先会转换成int类型
举例:
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1+b2);
//执行b1+b2操做时,两个byte类型数据都会转换为int类型,其结果是int类型,而不是byte类型,所以须要强制类型转换
b>容量大的类型转换为容量小的类型时,要加上强制类型转换符,但可能形成精度下降或溢出,使用时要格外注意!
c>有多种类型数据混合运算时,系统首先自动的将全部数据转换成容量最大的那一种数据类型,而后再进行计算
d>实数常量默认为double
e>整数常量默认为int
【重要区别】
(1)区别1
byte b1 = 67;
byte b2 = 89;
byte b3 = (byte)(b1+b2);
上述程序输出b3时会显示:b3=-100
分析:
b1+b2后会超出byte类型的表数范围,在内存中int类型4个字节,byte类型1个字节,要将int转换成byte只须要把多余3个字节
截去便可,剩下的那个字节是多少结果就认为是多少。
double d1 = 1e200;
float f1 = (float)d1;
上述程序输出f1时会发生溢出
分析:
浮点型数据在计算机内部用特殊的形式表示,专门在中间存储了一个小数点,来计算小数点后有几位数,因此直接截取是转换不
过来的(这样内部的格式就不对了)。
(2)区别2
float f1 = (float)0.1;
//0.1占8个字节,强制转换为4个字节
float f1= 0.1f;
//0.1f自己就是4个字节
找出是否存在错误:
<1>float f1=0.1; 出错,0.1为double
<2>long l2=88888888888L;
<3>byte b3 = 129; 出错
<4>j=j+10; j未赋值
<5>i=i/10; 计算结果为0
<6>i=i*0.1; 0.1为double类型,double赋值为int类型i会出错
<7>byte b = b1-b2; b1-b2为int类型,赋值给byte会出错
<8>char c = c1+c2-1; 出错,至关于int类型赋值给char
<9>float f4 = f1+f2*0.1; 0.1为double类型
【格式】
<1>大括号对齐;
<2>遇到"{"缩进,Tab/Shift+Tab(往回缩的时候用:Shift+Table);
<3>程序块之间加空行;
<4>并排语句之间加空格(public class HelloWorld {}--在HelloWorld后加空格);
<5>运算符两侧加空格;
<6>"{"前有空格;
<7>成对编程(防止遗漏"}")。
【运算符】
(1)自加和自减运算符
(2)逻辑运算符
(3)赋值运算符和拓展赋值运算符
(4)字符串链接符
(5)表达式
(6)三目条件运算符
【语句】
(1)条件语句
if/if...else/if...else if/if...else if...else if...else/switch
(2)循环语句
for(JDK1.5引入新语法)/while/do...while
a> for循环语句
b>while与do-while语句
c>break与continue语句
【相关程序】
d> switch语句
注:
<1>switch语句中能够是int类型的值,也能够是char、short、byte类型的值(转换成int类型);
<2>不要忘记使用break语句。
【方法】
C/C++中称为函数,Java中称为方法。