分享

Java Study Notes 01

 JQ物理馆 2012-08-23
1、Java版本
JSE:java standard edition,主要范围:桌面开发。

JME: java micro edition,主要范围:消费产品,嵌入式软件。

JEE: java enterprise edition,主要范围:企业解决方案、部署、管理。

2、java版本关系
JEE包含JSE;
JME为JSE的一部分再加上一些额外添加功能;

3、java之名
90年代初,sun基于C++开发了Oak(橡树)语言;
95年Oak经改造称为java(爪哇咖啡);

4、java大事记
1995\05\23 java诞生

1996\01    第一个JDK-JDK1.0诞生

1998\12\8  java2企业平台J2EE发布

1999\6    Sun发布java三个版本:标准版J2SE、企业版J2EE、微型版J2ME

2004\9\30 javaSE5.0发布

2006\12   javaSE6.0发布

PS:出Sun外,其他公司\组织也开发了自己的JDK:IBM的JDK,BEA的Jrocket,GNU的JDK.

5、java执行过程
.java【源代码】
——>(编译器)
——>.class【字节码,JVM的机器码】===network===>
——>classloader(寻找加载程序运行所需的类,能把本机的类与网络济源类相分离,调入类时进行检验)
——>byte code verifier(4次校验)
——>interpreter(解释)
——>Runtime(对代码进行运行)——>Hardware

6、java 三大核心技术
(1)JVM
     定义了:指令集(~CPU),寄存器,栈,存储区,垃圾收集堆,类文件格式;
    可以由软件实现,也可相应硬件实现;
    bytecode文件.class即为JVM的机器码指令;
    java程序中的所有类文件格式必须符合JVM定义的类文件格式;
(2)垃圾回收
    Garbage Collection(gc)
    垃圾回收是系统自动的行为,程序员不能控制其行为。
(3)代码安全
    编译时检验;
    类装载时检查;
    类装载后字节码校验;
    若程序在网络上运行有沙箱保护;


PS:
bin: binary
db:Derby数据库
在环境变量中:CLASSPATH前面一般要有“.;”,windows中“.”表当前路径。

7、Hello World!

//HelloWorld example
public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}

8、
(1)java中有public class,则java文件名必须与public class名相同;
(2)java文件中一次最多只能定义一个public class;
(3)java文件三个要素必须按顺序出现:
  package声明;
  任意数量的导入(import语句)
  class声明;


(二)
1、关键字
goto、const不是java关键字,是保留字;
true、false不是java关键字,是boolean的直接量;
关键字都是小写;
类的关键字:class;

2、标示符规则
(1)首字母:字母、下划线、$,其后字母、下划线、$、数字;
(2)区分大小写;
(3)不能为关键字;
(3)长度无限制;

PS:
java用Unicode字符集;
标示符能用中文,但实际上是将中文字当做unicode字符集中的符号对待了,不建议用中文标示符;

3、数据类型层次
(1)基本数据类型
-(1.1)布尔型:boolean
-(1.2)数值类型:
--(1-2-a)定点类型
(1-2-a-1)字符(char,16)
(1-2-a-2)字节(byte,8b)
(1-2-a-3)短整(short,16)
(1-2-a-4)整数(int,32)
(1-2-a-5)长整(long,64)
--(1-2-b)浮点类型
(1-2-b-1)单精度浮点(float)<32bit,def:0.0f>
(1-2-b-2)双精度浮(double)<64bit,def:0.0>
(2)引用数据类型
-类
-接口
-数组

###########################
PS:
1、
java中整数型(byte、short、int、long)都带符号,可以10、8、16进制显示:
15=15(D)
015=13(D)
0x15=21(D)
2、
java中long、float、double都可分别在后面加l、f、d加以强调;
3、
Unicode编码又叫万国码、统一码,为每个语言中的每个字符设定了唯一的二进制编码,表达:
'\u????'为一个Unicode字符。????严格对应四个16进制数。
在word中按住alt+x再松开即可将光标前的一个字转换成16进制unicode码。
4、java转义字符
\n enter
\t tab
\b space
\r 换行
\f 换页
\'
\"
\\
4、
java布尔型不同于c\c++,不能与数字代换,及只允许boolean值为true\false,没有:“非零即真”
#######################

4、java字符串表示String
String类,Sring字符串不同于C\C++,不以\0结尾;
字符数量任意;
string默认值为null;
char和String类型变量的生命:
字符变量:
char ch='A';
char ch1,ch2;
字符串变量:
String greeting="Good Morning!\n"
String str1,str2;
String str=""\\空字符串

5、java源程序物理组成
语句;
块(block)【{}包括的语句集合,可嵌套】;
注释,//、/**/、/**文档注释*/;
空格;

6、运算符
(优先级、左右结合性)
(1)算术运算
+、-、*、/;++、--(完全同c++)
%求mod;
5/2=2;(同c++)
(2)比较运算
>、<、>=、<=、==、!=
字符char用ASCII比较大小;
instanceof也为比较运算,判断一个对象是否属于某个类;
==对基本数据类型为比较内容,对引用类型是比较地址。
(3)逻辑运算
&&、||
(4)赋值
=、+=、……
(5)位运算
&、|、~(补码)、^(异或)
补码(全部取反)为单目,其余3个双目;
(6)移位运算
>>(右移一位,除2)、<<(左移一位,乘2)
(7)+用于String字符串的串联
(8)三目运算符
: (同于c++)

7、控制语句
(1)条件语句(同c++)
if……else
另外可以else if 否则如果:
if()
   {}
else if()
   {}
else if()
   {}
……
else
   {}
注:if()中必须是布尔表达式,这点不同于c++;
(2)switch语句.(同c++)
switch(expr1)
{
case expr2:……;break;
……
default:……;break;
}
(3)循环语句(同c++)
for ;
while;
do while;(至少循环一次)
注:
作为一种编程惯例,for循环一般用在那种循环次数事先可确定的情况,而while和do用在那种循环次数事先不可确定的情况。
do循环与while循环的不同这处在于,前者至少执行一次,而后者可能一次都不执行。
(4)特殊流程控制(同c++,label相当于C++的goto)
break [标注];
continue [标注];
label:语句;

Little PS:
标注可缺省,有标注时表示执行后从标注处执行。
注:
break语句被用来从switch语句、循环语句和预先给定了label的块中退出,跳出离break最近的循环。
continue语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。
label可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。它类似以前被人诟病的”goto”语句,我们应该尽量避免使用。


三、java类和对象

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多