A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-2-20 13:13 编辑

【济南中心】JavaEE基础班新课程day01:java概述

        听说了吗?黑马JavaEE基础班课程改革,为了增加重点知识的连贯性后面的课程放到了就业办,基础班的时间缩短了(大约16天)。打算来黑马大家利用开班前的时间来提前熟悉一下吧~
让我们看看第一天内容有什么吧!
今日内容介绍
    Java概述、helloworld案例
    工具安装 、配置环境变量、注释、关键字
    常量、变量、数据类型、标识符

第1章  Java概述



1.1 Java语言概述
     
首先看什么是Java呢?

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。   Java是一个纯的面向对象的程序设计语言。

     Java的特点:Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。


有的同学对C也感兴趣,看看他们的区别吧

1.2 Java与c/c++的关系与比较:

C语言出现最早,在上世纪70年代初问世的,发展的比较早。当今最流行的程序设计语言之一。可以说Java是在c语言的基础上发展起来的完全面向对象的高级语言。Java与C的相似之处远多于不同之处,Java的语法基础继承或相似于C语言,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。尤其是,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。从这几方面说来,Java显得更加方便。



1.3 javaEE概述,什么是JavaEE呢?

1.3.1为什么需要JavaEE

我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展。当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担。

为了程序的易维护性和可扩展性,这就需要我们使用JavaEE技术来进行项目开发


1.3.2什么是JavaEE

JavaEE是一个开发分布式企业级应用的规范和标准。

Java语言的平台有3个版本:适用于小型设备和智能卡的JavaME(JavaPlatform Micro Edition,Java微型版)、适用于桌面系统的JavaSE(Java Platform Micro Edition,Java标准版)、适用于企业应用的JavaEE(Java Platform Enterprise Edition,Java企业版)。


1.3.3JavaEE包括的技术

JavaEE应用程序是由组件构成的。J2EE组件是具有独立功能的单元,他们通过相关的类和文件组装成JavaEE应用程序,并与其他组件交互。

JavaEE包括的技术有:Web Service、Struts、hibernatespring、JSP、Servlet、JSF、EJB、JavaBean、JDBC、JNDI、XML、JavaSE。


1.3.4什么框架

框架即Framework,我们可以把框架理解为某种应用的半成品,就是一组组件,供用户选用,完成用户自己的系统。简单地说就是使用别人准备好的组件,来实施自己的项目。


1.3.5 JavaEE与框架的关系

框架技术是在JavaEE的基础上形成的,而应用程序是在框架的基础上创建的。


1.3.6、  JavaEE的体系结构

应用程序的三层结构如下:

表示层:由用户界面和用户生成界面的代码组成。

中间层:包含系统的业务和功能代码。

数据层:负责完成存取数据库的数据和对数据进行封装。

三层体系结构的优点:

一个组件的更改不会影响其他两个组件。例如:如果用户需要更换数据库,那么只有数据层组件需要修改代码。同样,如果更改了用户界面设计,那么只有表示层组件需要修改。

由于表示层和数据层相互独立,因而可以方便地扩充表示层,使系统具有良好的可扩展性。

代码重复减少,因为在3个组件之间尽可能地共享代码。

良好的分工与协作。这将使不同的小组能够独立地开发应用程序的不同部分,并充分发挥各自的长处和优势。


1.4 JVM,JRE,JDK的概述
1.4.1    什么是跨平台?
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)

1.4.2    JVM   JRE   JDK说明
A:什么是JVM
JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
B:什么是JRE
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
       JRE:JVM+类库。
C:什么是JDK
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
       其中的开发工具:编译工具(javac.exe)  打包工具(jar.exe)等
       JDK:JRE+JAVA的开发工具。
D:为什么JDK中包含一个JRE
       为什么JDK中包含一个JRE呢?
       开发完的程序,需要运行一下看看效果。
E:JDK,JRE,JVM的作用和关系
JDK包含JRE和开发工具包
JRE 包含 核心类库和JVM

1.5  helloworld案例
1.5.1    编写代码步骤
首先定义一个类
public class 类名
在类定义后加上一对大括号{}
在大括号中间添加一个主(main)方法/函数
public static voidmain(String [] args){ }
在主方法的大括号中间添加一行输出语句
System.out.println(“HelloWorld”);

1.5.2    案例代码一
[Java] 纯文本查看 复制代码
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}
运行代码步骤:
•       在命令行模式中,输入javac命令对源代码进行编译,生成字节码文件
–      javac 源文件名.java
•       编译完成后,如果没有报错信息,输入java命令对class字节码文件进行解释运行,执行时不需要添加.class扩展名
–      java HelloWorld


第2章  环境配置


2.1 工具安装
2.1.1 Notepad软件的安装和配置
      为了让我们写的程序错误看起来更直接,我们安装一款高级记事本软件。
      Notepad软件的安装和配置
      设置 – 首选项 – 新建 –默认语言和编码

2.2  环境变量配置
2.2.1 案例说明
为什么要配置
–     程序的编译和执行需要使用到javac和java命令,所以只能在bin目录下写程序
–     实际开发中,不可能把程序写到bin目录下,所以我们必须让javac和java命令在任意目录下能够访问
如何配置
–     创建新的变量名称:JAVA_HOME
计算机-右键属性-高级系统设置-高级-环境变量-系统变量
–     为JAVA_HOME添加变量值:JDK安装目录
–     在path环境变量最前面添加如下内容
%JAVA_HOME%\bin;


2.3  注释
2.3.1    注释概述
A: 什么是注释
–      用于解释说明程序的文字
B: Java中注释分类
单行注释
–      格式: //注释文字
多行注释
–      格式: /*  注释文字  */
文档注释
–      格式:/**注释文字 */
C: 注释的作用
        a:解释说明程序
        b:帮助我们调试错误
2.4  关键字
2.4.1    关键字概述
–      被Java语言赋予特定含义的单词
2.4.2    关键字特点
–      组成关键字的字母全部小写
–      常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。


第3章  语法格式


3.1  常量
3.1.1    常量概述
–      在程序执行的过程中,其值不可以发生改变的量
3.1.2    常量分类
–      字符串常量 用双引号括起来的内容(“HelloWorld”)
–      整数常量    所有整数(12,-23)
–      小数常量    所有小数(12.34)
–      字符常量    用单引号括起来的内容(‘a’,’A’,’0’)
–      布尔常量    较为特有,只有true和false
–      空常量        null(数组部分讲解)

3.2  变量
3.2.1    变量概述
–      在程序执行的过程中,在某个范围内其值可以发生改变的量
–      从本质上讲,变量其实是内存中的一小块区域
3.2.2    变量定义格式
–      数据类型变量名 = 初始化值;
–      注意:格式是固定的,记住格式,以不变应万变
3.2.3    变量图解


3.3  数据类型
3.3.1    计算机存储单元
变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:
–      1B(字节) = 8bit
–      1KB = 1024B
–      1MB = 1024KB
–      1GB = 1024MB
–      1TB = 1024GB

3.3.2    数据类型概述和分类
A:为什么有数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
B:Java中数据类型的分类
        基本数据类型
        引用数据类型
               面向对象部分讲解
   

[Java] 纯文本查看 复制代码
/*[/size][/align][size=3]    常量:在程序执行的过程中,其值不可以发生改变的量
   
    常量分类:
        A:字符串常量 "HelloWorld"
        B:整数常量       12,-23
        C:小数常量       12.34
        D:字符常量       'a','0'
        E:布尔常量       true,false
        F:空常量     null(后面讲解)
*/
public class ChangLiang {
    public static void main(String[] args) {
        //字符串常量
        System.out.println("HelloWorld");
       
        //整数常量
        System.out.println(12);
        System.out.println(-23);
       
        //小数常量
        System.out.println(12.34);
       
        //字符常量
        System.out.println('a');
        System.out.println('0');
       
        //布尔常量
        System.out.println(true);
        System.out.println(false);
    }
}

3.4  标识符
3.4.1    标识符概述
A 作用
–     给包,类,方法,变量等起名字
B 组成规则
–     由字符,下划线_,美元符$组成
•      这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符,数字字符等。
–     注意事项
–     不能以数字开头
–     不能是Java中的关键字

C : 命名原则:见名知意
a包
        最好是域名倒过来,要求所有的字母小写
b类或者接口
        如果是一个单词首字母大写
        如果是多个单词每个单词首字母大写(驼峰标识)
c方法或者变量
        如果是一个单词全部小写
        如果是多个单词,从第二个单词首字母大写
d常量
        如果是一个单词,所有字母大写
        如果是多个单词,所有的单词大写,用下划线区分每个单词

3.5  定义变量
3.5.1 基本数据类型变量的定义和使用
变量的定义格式:
              数据类型 变量名 = 初始化值;
       基本数据类型:
              byte,short,int,long,float,double,char,boolean
       注意:
              整数默认是int类型,定义long类型的数据时,要在数据后面加L。
              浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。
3.5.2    案例代码
[Java] 纯文本查看 复制代码
public class VariableDemo {
    public static void main(String[] args) {
        //定义byte类型的变量
        byte b = 10;
        System.out.println(10);
        System.out.println(b);
       
        //定义short类型的变量
        short s = 100;
        System.out.println(s);
       
        //定义int类型的变量
        int i = 10000;
        System.out.println(i);
       
        //定义long类型的变量
        long l = 1000000000000000L;
        System.out.println(l);
       
        //定义float类型的变量
        float f = 12.34F;
        System.out.println(f);
       
        //定义double类型的变量
        double d = 12.34;
        System.out.println(d);
       
        //定义char类型的变量
        char c = 'a';
        System.out.println(c);
       
        //定义boolean类型的变量
        boolean bb = false;
        System.out.println(bb);
    }
}
3.5.3    变量定义的注意事项
•       变量未赋值,不能直接使用
–      引出变量的第二种使用格式
•       变量只在它所属的范围内有效。
–      变量在哪对大括号内,变量就属于哪对大括号
•       一行上可以定义多个变量,但是不建议
3.5.4    案例代码
[Java] 纯文本查看 复制代码
/* 
    变量定义注意事项:
        1:变量未赋值,不能直接使用
        2:变量只在它所属的范围内有效
            变量属于它所在的那对大括号
        3:一行上可以定义多个变量,但是不建议
*/
public class VariableDemo2 {
    public static void main(String[] args) {
        //定义变量
        int a = 10;
        System.out.println(a);
       
        int b;
        b = 20; //变量在使用前赋值都是可以的
        System.out.println(b);
       
       
        {
            int c = 100;
            System.out.println(c);
        }
        //System.out.println(c);
       
        /*
        int aa,bb,cc;
        aa = 10;
        bb = 20;
        cc = 30;
        */
       
        /*
        int aa = 10;
        int bb = 20;
        int cc = 30;
        */
       
        int aa=10,bb=20,cc=30;
    }
}
3.6  数据类型转换
3.6.1 隐式数据类型转换
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
3.6.2    案例代码
[Java] 纯文本查看 复制代码
/*
    +:是一个运算符,做加法运算的。
    我们在做运算的时候,一般要求参与运算的数据类型必须一致。
   
    类型转换:
        隐式转换
        强制转换
       
    隐式转换
        byte,short,char -- int -- long -- float -- double
*/
public class TypeCastDemo {
    public static void main(String[] args) {
        //直接输出了运算的结果
        System.out.println(3 + 4);
       
        //定义两个int类型的变量
        int a = 3;
        int b = 4;
        int c = a + b;
        System.out.println(c);
       
        //定义一个byte类型,定义一个int类型
        byte bb = 2;
        int cc = 5;
        System.out.println(bb + cc);
       
        //我能不能不直接输出,用一个变量接受呢?
        //用变量接受,这个变量应该有类型
        //可能损失精度
        //byte dd = bb + cc;
        int dd = bb + cc;
        System.out.println(dd);
    }
}

3.6.3 强制类型数据转换
强制转换的格式
       * b = (byte)(a + b);
强制转换的注意事项
       * 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
3.6.4    案例代码
[Java] 纯文本查看 复制代码
/*
    强制转换:
        目标类型 变量名 = (目标类型) (被转换的数据);
        不建议强制转换,因为会有精度的损失。
*/
public class TypeCastDemo2 {
    public static void main(String[] args) {
        int a = 3;
        byte b = 4;
        int c = a + b;
        //byte d = a + b;
        byte d = (byte) (a + b);
    }
}


今天的学习就到这里,如果你是刚接触编程的话可能需要消化一会不过不要紧慢慢来,再写一遍HelloWorld吧~


2 个回复

倒序浏览
很厉害呀
回复 使用道具 举报
非常不错,正好我要考就业班,拿来复习过一遍!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马