Java语言基础

一、Java发展历程

    1995年5月23日,由SUN公司在互联网上免费发布,Java语言诞生,詹姆斯.戈斯林被称为Java之父。

    1996年1月,第一个JDK,JDK1.0诞生,是测试版,并不稳定。

    1997年2月,JDK1.1发布,第一个正式版本。

    1998年12月,SUN公司将Java改名为Java 2(第二代Java), 并发布J2SE 1.2。

    1999年6月,SUN公司正式发布Java2的三个版本:标准版J2SE、企业版J2EE和微型版J2ME,这是Java发展过程中最重要的里程碑,标志着Java的应用开始普及。

    2004年9月,Sun公司再次进行改名,取消其中的数字2,如Java2更名为Java,J2EE、J2SE和J2ME更名为JavaME、JavaEE和JavaME,并发布Java SE 5.0(就是1.5.0)。

    2009年4月,甲骨文74亿美元收购Sun,取得Java的版权。

    2011年7月,甲骨文发布java7.0(就是JDK1.7、Java SE 7.0)的正式版。

版本

名称

发行日期

JDK 1.0

未知

1996年1月

JDK 1.1.0

未知

1997年2月

J2SE 1.2

Playground(运动场)

1998年12月

Java SE 5.0 (1.5.0)

Tiger(老虎)

2004年9月

Java SE 7.0 (1.7.0)

Dolphin(海豚)

2011年7月

Java SE 8.0 (1.8.0)

未知

2014年3月

备注1:期间有些主版本及其子版本就不一一列举了

备注2:J2SE、Java、Java SE和JDK其实都是一个东西

二、JAVA的三个版本

1、JAVA Standard Edition

   简称JAVA SE,就是JDK,比如通常说的Java7.0或者JDK 1.7,其实都是一个东西,这是由Sun公司提供的一个免费的Java SDK,编程人员和最终用户可以利用这个工具来编译、运行Java程序,版本就是上面那个表。JDK主要包括以下三项:

主要部分

细分

所在路径

编译器

{JAVA_HOME}\bin\javac.exe

解释器

{JAVA_HOME}\bin\java.exe

JRE(内部的)

JVM

{JAVA_HOME}\jre\bin\server或client\jvm.dll或libjvm.so

类库

{JAVA_HOME}\jre\lib\里的一批jar文件,如rt.jar

其他

……

其他

……

……

备注:开发一个Java程序的最小环境是JDK,运行一个Java程序所需要的最小环境是JRE

 

2、JAVA Enterprise Edition

    简称JAVA EE,运行在JAVS SE的基础上,包括许多组件,如Java Web开发中的JSP、Servlet等,JavaBean和JDBC技术,Java框架也属于JAVA EE。主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

3、JAVA Micro Edition

    简称JAVA ME,主要应用于嵌入式系统开发,如手机和PAD的编程,但目前已被Android和iOS取代。

三、JAVA编译运行过程:运行入口main

第一步、安装编译运行环境

    安装JDK,安装时要选择所有组件,不可有禁用。安装完成后,配置JAVA_HOME和PATH环境变量。

第二步、编写JAVA源代码

    一个Java文件中可以有多个类且每个类中都可以有main函数。可以没有public类仅有多个默认类,此时文件名可以和每个类名都不同;如果有public类就只能有一个,文件名必须和public类名相同,否则编译报错,如下HelloWorld.java。


第三步、编译源程序—针对类非源文件

    使用JDK中的编辑器把单个java源文件编译成class字节码文件,编译时有多少个类就会产生多少个和类名相同的class文件,所以一个class文件里只有一个类。

第四步、解释并运行字节码文件—针对类非源文件

    使用JDK中的解释器,以每个类为操作对象而不是Java源文件,某个类被单独解释执行时,必须要有main函数,否则解释此类时会报“找不到main方法”。

    这一步的具体过程:解释器启动JVM,由JVM先加载.class文件,解释成二进制代码,然后在操作系统中运行此二进制代码。因为较C/C++多了个JVM,JAVA实现了跨平台的效果但也因为降低了运行效率。

5、使用IDE完成JAVA开发全过程

    使用IDE如Eclipse或者Eclipse能够更加方便的进行编写、编辑、解释并运行。第一、这些IDE都自带JDK,所以当使用IED时不用单独安装和配置JDK。第二、使用IDE在编写JAVA源代码后,保存此文件时就已经完成编译,在{工程}/bin/包/目录下产生class文件(所以一个包中不能有名称相同的类),然后可以通过一个按钮运行某个类。使用IDE只是操作更方便了,但其实仍然遵循以上四步骤。

    一个JAVA源文件可以有多个类且每个类中都可以有main函数。但一个多文件的Java Project必须且仅有一个main方法,且必须是在某个JAVA源文件的public类中,整个project的启动运行就是通过对这个JAVA文件—>public类Run As Java Application启动的,具体入口就是类中的main函数;然后从main函数里调用其他同一文件或其他文件里的类。

四、package和import

1、包package

    一个庞大的JAVA工程会有数量庞大的类,而且某些大的模块还会有相同功能的类,如果一个类只有类名就会出现命名冲突的问题,这会给组件复用以及团队间的合作造成很大的麻烦。在Java语言中,用包(package)的概念解决命名冲突的问题。先创建一个包,创建后对应src和bin下的一个文件夹,具有层次结构;然后在这个文件夹下新建JAVA源文件,该文件的最开始用package关键字把此包的路径定义为包名。如此,这个JAVA源文件里的所有类就都属于这个包了。

   一个包下的类不能重名,否则编译不过,因为编译是针对每个类生成类名.class文件的。

2、导入import

    当一个JAVA源文件访问其他包下的类时,需要使用该类的全称:包名路径+类名,但这样的书写方式过于繁琐。可以通过import关键字引入其他包下的类,但也需要需要满足权限,然后在源文件中就可以仅使用类名访问该类了。

    但如果是同一包下的其他类,就不需要import便可以直接用类名使用了,无论这个其他类时public的还是默认的。这种方式也要避免类的重名。

五、变量

1、两种变量

2、变量的生命周期和作用域

    第一种变量存在于某个具体的对象中,JAVA对象其实就是第二种变量,所以没有作用域和生命周期的概念。

    第二种变量的生命周期和作用域就是该变量所在的{.....},当程序运行在{......}以外时,该变量就被销毁了。

六、Java输入输出

七、数据类型:两种

1、基本数据类型

1.1、boolean类型

1.2、char类型

1.3、byte类型

1.4、short类型

1.5、int类型

1.6、long类型


1.7、浮点类型

2、引用类型

  是JDK里自带的Java类或程序员自己创建的类,如

  java.lang.String类 、java.lang.System类或java.uitl.Scanner类......

3、基本数据类型之间的类型转换

3.1、直接量

 

 

3.2、自动/隐式类型转换

3.3、强制类型转换

八、运算符和表达式

1、算术运算符

     普通运算符:  +加  -减  *剩   /除   %取余  ++自加  --自减   

     位运算符:    &与运算 |或运算  ^异或运算  ~取补运算  <<左移位  >>右移位

2、赋值运算符

     基本赋值运算符:=  

     与算术运算符组合型:+=  -= *=  /=  &=  |=   ^=

3、关系运算符

     == 、 != 、> 、>=、<、<=

4、逻辑运算符

     &&逻辑与、 ||逻辑或、 !逻辑非

5、条件运算符

     条件表达式?表达式1:表达式2

6、表达式

   表达式,是由字面数据、变量、运算符和分组符号(括号)等以能求得数值为目所进行的组合。可以分为两种:算术表达式是是通过算术运算符来进行运算的数学公式,逻辑表达式是通过四种运算符判断真假的表达式,比如赋值运算的结果永远是True。

   一个表达式中,四种运算符和分组符号的优先级别大致为:分组符号→乘/除/余→加/减→关系运算符→逻辑运算符→赋值运算符;同级的运算是按从左到右次序进行;多层括号由里向外。

九、Java引用类型

    是JDK里自带的Java类或程序员自己创建的类,如java.lang.String类、java.lang.System类或java.uitl.Scanner类......Java语言中,除了package和import,变量、表达式、程序控制、数组、函数包括main函数等,一切都在类中。

十、程序控制语句

1、条件判断语句

    if语句    /   if-else语句     /    if...else if语句    /    switch...case语句

2、循环控制语句

    while(){}语句  /  do{}while()语句  /   for(语句1;语句2;语句3){语句4}语句

3、跳转语句

    跳转语句其实仅仅是属于控制循环的,但实际应用中通常是放在循环语句内部的条件判断语句中。

    break:  退出该语句所处的最内层的循环

    continue:终止本次循环,直接执行语句3开始下一次循环

十一、数组

十二、函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值