黑马程序员-----程序员之路_____Java基础

本文介绍了Java语言的发展现状、特点及其应用分类。详细阐述了Java虚拟机(JVM)的工作原理,Java语言的三种技术架构:JAVAEE、J2SE、J2ME,并深入探讨了Java基础语法,包括基本数据类型、名称规范、关键字类型等内容。

----------android培训、java培训、期待与您交流!----------

1、java的现状


Java Sun 公司推出的新一代面向对象程序设计语言,特别适于Internet 应用程序开发,它的平台无关性直接威胁到Wintel 的垄断地位,这表现在以下几个方面: 

1)计算机产业的许多大公司购买了Java 许可证,包括IBM AppleDEC AdobeSiliconGraphicsHPOracleTOSHIBA以及Microsoft 。这一点说明,Java 得到了业界的认可。 


2)众多的软件开发商开始支持Java 软件产品。例如Inprise 公司的JBuilder Sun公司自己做的Java 开发环境 JDK JRE Sysbase公司和Oracle 公司均已支持HTML Java 

 

3)Intranet 正在成为企业信息系统最佳的解决方案,而其中 Java 将发挥不可替代的作用。Intranet 的目的是将 Internet 用于企业内部的信息类型,它的优点是便宜、易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的Internet 浏览器,而数据库、Web 页面、Applet Servlet JSP 则存储在Web服务器上,无论是开发人员还是管理人员,或是用户都可以受益于该解决方案。 


2、java的特点

1)跨平台性

所谓的跨平台性,是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。这是软件发展的趋势和编程人员追求的目标。之所以这样说,是因为计算机硬件的种类繁多,操作系统也各不相同,不同的用户和公司有自己不同的计算机环境偏好,而软件为了能在这些不同的环境里正常运行,就需要独立于这些平台。而在Java语言中,Java自带的虚拟机很好地实现了跨平台性。Java源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被Java虚拟机识别的一种机器码指令。Java拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。

2)面向对象

面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表达,而通过使用方法来操作这个对象。面向对象技术使得应用程序的开发变得简单易用,节省代码。Java是一种面向对象的语言,也继承了面向对象的诸多好处,如代码扩展、代码复用等。

3)安全性

安全性可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性。语言级安全性指Java的数据结构是完整的对象,这些封装过的数据类型具有安全性。编译时要进行Java语言和语义的检查,保证每个变量对应一个相应的值,编译后生成Java类。运行时Java类需要类加载器载入,并经由字节码校验器校验之后才可以运行。Java类在网络上使用时,对它的权限进行了设置,保证了被访问用户的安全性。

4)多线程性

多线程在操作系统中已得到了最成功的应用。多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理。Java除了内置的多线程技术之外,还定义了一些类、方法等来建立和管理用户定义的多线程。

5)简单易用

Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行,通过调试则可得到想要的结果。

3、java应用分类

1)应用程序

典型的通用程序可以在具备Java运行环境的设备中独立运行,它又分为:

GUI应用程序:即图形用户界面程序,可实现丰富的输入界面和输出显示。

命令行程序:无需界面,只需在命令行下运行,运行结果只在后台发生变化,可以将输出存放到文件中。

嵌入式应用程序:Java语言的平台独立性决定了它可以嵌入到不同的设备中,且只需具备必要的运行环境即可。

2)Servlets服务器端应用程序

服务器端的应用程序用来收集客户端的数据输入,对数据进行处理之后,返回相应的响应给客户。它主要用来实现与客户端的交互。

3)Applets小应用程序

Applets应用于网络上,嵌入在HTML网页中,支持Java浏览器都可以对它进行解释并运行。通常通过一个HTML标签<APPLET></ APPLET >来识别并运行Applets。小应用程序的类在服务器端,当浏览器显示网页时,它随之下载到本地,由本地的浏览器载入运行。

4、java 虚拟机

Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行

JAVA 可以实现可移植性的原因,在操作系统上(WINNTLinuxUnix )植入 JVM Java 虚拟机),J AVA 程序就具有可移植性,也符合 SUN 司提出的口号“Write Once, Run Anywhere”(“一次编写,处处运行”)。


5、Java语言的三种技术架构


(1)JAVAEE(Java 2 Platform Enterprise Edition)企业版,是为开发企业环境下的应用程序提供的一套解决案。该技术体系中包含的技术如 Servlet Jsp等,主要针对于Web应用程序开发。

 

(2)J2SE(Java 2 Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如Java版的扫雷。

(3)J2ME(Java 2 Platform Micro Edition)小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。
 
6、Java语言的跨平台性,java语言编写的应用程序在不同的系统平台上都可以运行。
 
原理:只要在需要运行java应用程序的操作系统上,先安装一个java虚拟机JVM即可。由javaJVM来负责java程序在该系统的运行。
 
7、Java基础语法:
(1)java中的基本数据类型

原始类型              包装类           包装类型所占的字节数
short                  Short              2个字节
int                    Integer            4个字节
long                   Long               8个字节
float                  Float              4个字节
byte                   Byte               1个字节
char                   Character          2个字节
boolean                Boolean            试编译环境而定

这里有个问题需要注意一下:String是一个特殊的类不需要基本类型。

(2)基本数据类型包装类的作用:
     用于基本数据类型和字符串类型间做转换
     基本数据类型转化成字符串:
     基本数据类型.toString(基本数据类型值)
     例如Integer.toString(34)//将34整数变为“34”字符串

     字符串转换成基本数据类型; 
     xxx a= Xxx.parseXxx(String);
     例子:int a= Integer.parseInt("123");
(3)Java中的名称规范:
包名:多单词组成时所有字母都小写。
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
(4)标识符:由26个英文字母大小写,数字:0-9 符号:_ $ 组成
定义合法标识符规则:
1,数字不可以开头。
2,不可以使用关键字。
3,Java中严格区分大小写。

注意:在起名字的时,为了提高阅读性,要尽量有意义。

(5)关键字类型


(6)类型

(7)注释
**用于注解说明解释程序的文字就是注释。
**提高了代码的阅读性。
**Java中的注释格式:

单行注释

格式: //注释文字

多行注释

格式: /*  注释文字  */

文档注释

格式:/** 注释文字 */


**对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
**对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
**注释是一个程序员必须要具有的良好编程习惯。
**初学者编写程序可以养成习惯:先写注释再写代码。
**将自己的思想通过注释先整理出来,在用代码去体现。
**因为代码仅仅是思想的一种体现形式而已。
 
/** 
这是我的Hello World程序。 
@author 马晓平 
*/  
class Demo  
{  
    /* 
    这是主函数,是程序的入口 
    它的出现可以保证程序的独立运行, 
    */  
    public static void main(String[] args)  
    {  
        //这是输出语句用于将括号内的数据打印到控制台。   
        System.out.println("Hello World");  
    }  
}  
(8)常量与变量

1)常量
**常量表示不能改变的数值。
**Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量。将一个或者多个字符用双引号标识。
6,null常量。只有一个数值就是:null.
   **对于整数:java有三种表现形式。
   十进制:0-9 ,满10进1.
   八进制:0-7 ,满8进1. 用0开头表示。
   十六进制:0-9,A-F,满16进1. 用0x开头表示。
   **进制的基本转换
   十进制  二进制 互转
   十进制转成二进制  除以2取余数
   二进制转成十进制  乘以2的幂数
   十进制 八进制 互转
   十进制 十六进制 互转
   负数的二进制表现形式
   对应的正数二进制取反加1

2)变量

**变量的概念:

内存中的一个存储区域

该区域有自己的名称(变量名)和类型(数据类型)

该区域的数据可以在同一类型范围内不断变化

**为什么要定义变量:

用来不断的存放同一类型的常量,并可以重复使用

**使用变量注意:

变量的作用范围(一对{}之间有效) 

初始化值

**定义变量的格式:

数据类型    变量名  =  初始化值;如 :int x = 4;

注:格式是固定的,记住格式,以不变应万变。

**理解:变量就如同数学中的未知数。


(9)运算符
1)算术运算符


2)赋值运算符

符号:
= , +=, -=, *=, /=, %=


示例:
int a,b,c;  a=b=c =3;
int a = 3;   a+=5;等同运算a=a+5;


思考:

short s = 3; 

s=s+2;

s+=2;    

有什么区别?

3)比较运算符


注释1:比较运算符的结果都是boolean型的,结果只有两个要么true,要么false
注释2:比较运算符“==”不能误写成赋值运算符“=”

4)逻辑运算符

5)位运算符

位运算符对二进制的运算


6)三元运算符
**格式
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
**示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
**注意
(条件表达式)?表达式1:表达式2;
A:接收值有且其类型必须要与表达式1,表达式2相同,若不相同,类型转换
B:若两个表达式有一个是常量,则输出另一个类型

(10)流程控制语句

1)判断结构 if 语句


if 语句的特点:
A:每一种格式都是单条语句
B:第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式之中。
C:条件表达式无论写成什么样子,只看最终结果是true还是false

2)选择结构 switch

switch语句
格式:switch(表达式)
    {
case  取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
.....
.....
default:
执行语句;
break;
}

switch语句的特点:
A:switch语句选择的类型只有四种:byte、int、char、short
B:case之间与default没有顺序,先执行第一个case,没有匹配的case执行default
C:结束swatch语句的两种情况:执行到break或者程序执行完switch自动结束
D:如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾。

3)循环结构 while do-while for
代表语句:while      ,     do while       ,       for
        while语句格式:     do while语句格式            for(初始化表达式;循环条件表达式;循环后的操作表达式)
      while(条件表达式)          do
{ 执行语句;           {执行语句;{执行语句;
}                       }while(条件表达式);}
(11)函数

1)函数的定义

函数就是定义在类中的具有特定功能的一段独立小程序。

函数也称为方法。

2)函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)

{

执行语句;

return 返回值;

}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:用于结束函数。

返回值:该值会返回给调用者。


3)函数的特点


**定义函数可以将功能代码进行封装
**便于对该功能进行复用
**函数只有被调用才会被执行
**函数的出现提高了代码的复用性
**对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
**注意:

函数中只能调用函数,不可以在函数内部定义函数。

定义函数时,函数的结果应该返回给调用者,交由调用者处理。


4)函数的应用

     两个明确

明确要定义的功能最后的结果是什么?

明确在定义功能的过程中,是否需要未知内容参与运算

示例:

需求:定义一个功能,可以实现两个整数的加法运算。

分析:

该功能的运算结果是什么?两个数的和,也是一个整数(int)

在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个参数int,int)

代码:

int  getSum(int x,int y)

{

return x+y;

}


5)函数的重载


6)内存结构



-------android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值