第1章 - Java 介绍

第1章 - Java 介绍

 

1 计算机语言概述

1).什么是软件

       软件: 一系列按照特定顺序组织的计算机数据和指令的集合就是软件

    常见的软件 1).系统软件: DOS,  Windows, Linux2).应用软件: 扫雷, 迅雷, QQ

2).人机交互

    软件的出现实现了人与计算机之间的更好的交互,一般的交互方式如下:

    1).图形化界面(Graphical User Interface GUI), 这种方式简单直观, 使用者易于接受, 容易上手操作.

    2).命令行方式(Command Line Interface CLI), 需要有一个控制台, 输入特定的指令, 让计算机完成一些操作, 较为麻烦, 需要记录在一些命令

3).什么是计算机语言

    语言: 是人与人之间用于沟通的一种方式

    计算机语言: 人与计算机交流的方式(那么需要学习计算机语, C, C++, Java)

 

2 Java语言概述

    1).SUN(Stanford University Network, 斯坦福大学网络公司), 1995年推出的一门高级编程语言

    2).是一种面向Internet的编程语言

    3).随着Java技术在Web方面的不断成熟, 已经成为Web应用成功的首选开发语言

    4).是简单易学, 完全面向对象, 安全可靠, 与平台无关的编程语言

 

2.1 Java语言的三种技术架构

1).J2EE(Java 2 Platform Enterprise Edition)企业版

    是为开发企业环境下的应用程序提供的一套解决方案

    该技术体系中包含的技术如Servlet, Jsp, 主要针对于Web应用程序开发

2).J2SE(Java 2 Platform Standard Edition)标准版

    是为开发普通桌面和商务应用程序提供的解决方案

    该技术体系是其他两者的基础, 可以完成桌面应用程序的开发(Java版的扫雷)

3).J2ME(Java 2 Platform Micro Edition)小型版

    是为开发电子消费产品和嵌入式设备提供的解决方案

    该技术体系主要应用于小型的消费类产品, 如手机中的应用程序等

【注: Java5.0版本后, 更名为JAVAEE, JAVASE, JAVAME

 

2.2 Java的特点: 跨平台原理,安全性

    JVM(Java虚拟机)是一个软件, 不同的平台有不同的版本

    我们编写的Java源码, 编译后会生成.class 文件, 称为字节码文。解决了2大问题:安全性 和 可移植性

    JVM就是负责将.class文件(字节码文件)翻译成特定平台下的机器码然后运行JVM是一个"桥梁", 是一个"中间件", 是实现跨平台的关键, Java代码首先被编译成字节码文件, 再由JVM将字节码文件翻译成机器语言, 从而达到运行Java程序的目的(这个过程中, 我们编写的Java程序没有做任何改变, 仅仅是通过JVM这一"中间层", 就能在不同平台上运行, 真正实现了"一次编译, 到处运行"的目的)

注意: 编译的结果不是生成机器码, 而是生成字节码, 字节码不能直接运行, 必须通过JVM翻译成机器码才能运行. 不同平台下编译生成的字节码是一样的, 但是由JVM翻译成的机器码却不一样.

    所以, 运行Java程序必须有JVM的支持, 因为编译的结果不是机器码, 必须要经过JVM的再次翻译才能执行. 即使你将Java程序打包成可执行文件(例如.exe), 仍然需要JVM的支持

注意: 跨平台的是Java程序, 不是JVM. JVM是用C/C++开发的, 是编译后的机器码, 不能跨平台, 不同平台下需要安装不同版本的JVM.

 

2.3 什么是JRE, JDK

1).JRE(Java运行环境)

    包含Java虚拟机(JVM Java Virtual Machine)Java程序所需的核心类库, 如果想要运行一个开发好的Java程序, 计算机安装JRE即可

2).JDK(Java开发工具包)

    JDK提供给Java开发人员使用, 包含了Java的开发工具, 也包括了JRE, 所以安装了JDK, 就不用单独装JRE

【简单而言, 使用JDK开发完成的Java程序, 交给JRE去运行】

 

2.3.3 JDK目录介绍

    sample: 包含了使用JNLP的示例应用程序, JNLP是指Java Network Launching Protocol, 用于在一个网络服务器中执行应用程序或applet, 但不需要浏览器, 也不需要下载和安装代码.

    jre: 包含执行Java程序时将要用到的Java运行时环境(Java Runtime Environment, JRE)工具. Java库中的类存储在jre\lib目录下. 它们并不会单个出现. 它们都被打包并存放在归档文件rt.jar. JRE会在程序执行时确保提取所需的类.

 

2.4 Javac.exe

 

    Win+R -> 进入CMD -> 执行JDK安装位置下的/bin/javac.exe

    命令行模式(非图形化界面)

    输入help看命令行操作

基本操作:注意有包名和没有bao名区别

    javac Hello.java

    java Hello

    javac com/demo/Hello.java

    java com.demo.Hello

 

3 Java语言环境变量

3.1 环境变量的配置

Windows

    1).我的电脑 -> 属性 -> 系统设置 -> 环境变量

    2).在系统变量中, 新建一个JAVA_HOME,配置内容:D:\Program Files\Java\jdk1.8.0_45

    3).寻找PATH变量:添加内容:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    4).寻找CLASSPATH, 没有就新增CLASSPATH变量,内容:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

注意: 配置\jdk\bin的环境变量, 才可以在任何目录下使用javac.exe

Linux

vim /etc/profile

    添加内容

#Java config

JAVA_HOME=/usr/local/app/jdk1.8.0_152

JRE_HOME=/usr/local/app/jdk1.8.0_152/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME CLASS_PATH PATH

    使其生效

source /etc/profile

 

3.2 JAR

(basic.demo03.JarDemo)

    JAR(Java Archive, Java 归档文件)是与平台无关的文件格式, 它允许将许多文件组合成一个压缩文件. J2EE应用程序创建的JAR文件是EAR文件(企业JAR文件).

    jar: 可以看到命令列表

    步骤, cmd进入要打包的目录:

    jar -cf jarDemo.jar

 

3.3 临时配置环境变量

    进入cmd,使用set path来设置临时变量,而不会改变电脑本身环境变量

    set path=*********

 

 

 

4 Java程序开发体验

4.1 Hello World!

 (basic.helloworld.HelloWorld)

    要学习Java程序, 首先应该了解程序的基本结构, 这样有利于进一步学习Java语言. 一个Java程序的基本结构大体分为包、main()方法、标识符、关键字、语句和注释

1.HelloWorld的初体验

    1).Java代码编写到扩展名为.java的文件中

    2).通过javac命令对该java文件进行编译。javac HelloWord.java

    3).通过java命令对生成的class文件进行运行。java HelloWorld.class

    流程:.java文件 -- javac.exe(编译) -> .class文件 -- java.exe(运行) -> 结果

注意: 1.Java语言中, 主方法的写法是固定的, 除主方法的形参"String[] args"可以修改为"String args[]"以外, 不可以修改其他任何部分, 否则Java程序都将无法运行

       2.设置的classpath环境变量就是javac 生成class的位置

       3.Java编译器假设源代码在工作环境中使用默认的字符编码. 如果不是, 就必须设定-encoding选项来告知编译器源代码所使用的字符编码. 例如: javac.exe -encoding Unicode HelloWorld.java

 

4.2 Java的类库

    Java中的库是类的集合(通常提供相关的工具)可以在程序中使用. 下表是经常使用的标准包

包名

描述

java.lang

支持基本语言特征并处理数组和字符串的类. 该包在程序中自动加载,所以在程序中直接可用

java.io

用于流输入和输出操作的类

java.nio.file

用于文件输入和输出的类

java.util

各种类型的实用程序类, 包括在集合或数据项组中管理数据的类

javax.swing

提供易用且灵活的组件来构建图形用户界面(Graphical User Interface, GUI). [也称Swing组件]

java.awt

提供原始的GUI组件(JDK1.1)以及一些对Swing组件必要的基本支持

java.awt.geom

这些类定义二维的几何形状

java.awt.event

在窗口应用程序的实现中用来处理程序中的事件. 事件是指移动鼠标、单击鼠标左键或菜单选项等

 

4.3 JavaUnicode

    Unicode是一个标准字符集(用来支持对几乎所有语言的编码)Unicode使用16比特(大部分国家的语言都用不同的8比特字符集定义,但是8比特只能有256种不同的编码,不足以表示那么多的字符)的编码来代表一个字符(所以每个字符占据两个宇节), 而且16比特可以区别65535个非零字符编码. 有如此多可用的字符编码, 足够为每种主要的字符集分配白身的编码集, 包括Kanji这样的字符集, 用于日语并且需要上万个字符编码. 而且事情还不止于此. Unicode支持三种编码方式, 最多允许表示多达一百万个的额外字符.

    Java源代码是Unicode字符. 注释、标识符以及字符和字符串都能使用Unicode集合中表示字母的任意字符. Java也支持使用Unicode来表示字符和字符串, 所以框架支持一个程序中含有各种国际语言. 最熟悉的普通ASCII集合对应Unicode集合的前128个字母. 除了要注意每个字符通常占据两个字节之外, 大部分情况下可以忽略对Unicode字符的处理, 除非要从一开始就构建一个支持多语言的应用程序.

    之所以说每个Unicode字符通常都占据两个字节, 是因为Java支持Unicode4.0, 因而允许使用32比特编码的超大字符集. 可能认为使用16比特能够表示的64K的字符集己经足够, 但是其实不然. 仅仅东方语言, 例如日语、朝鲜语以及中文就单独包含70000多个象形文字(一个象形文字只是一个图形符号, 有时叫做表意文字). 超大字符集用来表示在由 16比特字符定义的基本多语言集合中没有包括的字符

 

转载于:https://my.oschina.net/vwFisher/blog/2208340

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值