Java概述
Posted Al_tair
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java概述相关的知识,希望对你有一定的参考价值。
Java概述
Java概述
大家好呀!我是小笙!前几天被培训班的老师考察基础,发现漏洞还是有很多的,我想进一步学习java基础,所以我跟着韩老师学Java,以下是我的笔记
Java诞生
Java(英式发音[ˈʤɑːvə],美式发音[ˈʤɑvə])是一种广泛使用的计算机编程语言.
-
嵌入式系统的发展,c/c++在不同平台上的开发需要不同的编译器,然而创建编译器"费时费力"
-
开发者研究开发一种可移植,跨平台的计算机语言
-
1991 Oak的出现 ~~> 1995 更名为Java
开发Java语言的初衷
Java之所以被开发,是要达到以下五个目的:
初衷 <==> 语言特点
-
应当使用面向对象程序设计方法学 <==> 面向对象
-
应当允许同一程序在不同的计算机平台执行 <==> 平台无关性
-
应当包括内建的对计算机网络的支持 <==> 分布式
-
应当被设计成安全地执行远端代码 <==> 安全性
-
应当易于使用,并借鉴以前那些面向对象语言(如C++)的长处。 <==> 简单性,健壮性,高性能
java语言有哪些特点?
1. 面向对象
Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。
2. 平台无关性
平台无关性的具体表现在Java 是“一次编写,到处运行“的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。
3. 简单性
Java 语言的语法与 C 语言和 C++ 语言很相近,使得很多程序员学起来很容易。对 Java 来说,它舍弃了很多 C++ 中难以理解的特性,如操作符的重载和多继承等,而且 Java 语言不使用指针,加入了垃圾回收机制,解决了程序员需要管理内存的问题,使编程变得更加简单。
4. 编译与解释并存
Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。
Java即是编译型的,也是解释型语言,总的来说Java更接近解释型语言(补充:解释型语言:javascript,php,Java 编译型语言:c/c++)
解释型语言和编译型语言的区别:
解释性语言,编译后的代码,不能直接被机器执行,需要解释器来执行 ; 编译性语言,编译后的代码,可以直接被机器执行,c/c++
5. 多线程
Java 语言是多线程的,这也是 Java 语言的一大特性,Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。
6. 分布式
Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。
7. 健壮性
Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。
8. 高性能
Java 的高性能主要是相对其他高级脚本语言来说的,随着 JIT(Just in Time)的发展,Java 的运行速度也越来越高。
9. 安全性
Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防止恶意代码的攻击。除了 Java 语言具有许多的安全特性以外,Java 还对通过网络下载的类增加一个安全防范机制,分配不同的名字空间以防替代本地的同名类,并包含安全管理机制。
Java虚拟机(JVM)
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据 内存 寄存器。
JDK JRE JVM 关系
编译与解释
在dos窗口运行 如 helloJava.java 的文件
// 编译 java
javac helloJava.java
// 解释 helloJava.class
java helloJava // 这里只需要类名,切记非 java helloJava.class
源文件中代码注意事项 细是真的细!!!
- 一个源文件中最多只能有一个被public修饰的类,而非public修饰的类可以有无数个
- 如果一个源文件中有被public修饰的类,则该类的名字必须和文件名相同 // 区别文件(有后缀) and 文件夹 (没有后缀,只是用来存放文件的一种组织形式)
- 主方法main(程序入口)可以放在非public修饰的类 (源文件中所有类都可以不被public修饰)
- 一个源文件中含有多个类,通过编译会生成对应个数的字节码文件(字节码文件的名字 <==> 类名)
- 如果一个源文件中的类与类之间没有存在联系(如下代码)可以在每一个类中放置程序入口main函数,由于最后生成不同的字节码文件,我们只需要通过java.exe工具将各个字节码放入到JVM虚拟机中进行解释执行(因为不存在同时放入两个字节码,所以不会存在程序入口冲突问题)
class java
public static void main(String[] args)
System.out.println("helloworld~");
class person
public static void main(String[] args)
System.out.println("person~");
class animal
public static void main(String[] args)
System.out.println("animal~");
// 运行结果
C:\\Users\\Ushop\\Desktop\\mess\\textJava>java java
helloworld~
C:\\Users\\Ushop\\Desktop\\mess\\textJava>java person
person~
C:\\Users\\Ushop\\Desktop\\mess\\textJava>java animal
animal~
转义字符
概述:\\ 开头 表示接下这个字符是转义字符 比如:\\n 中的n不在是字母n的含义
public static void main(String[] args)
/* 转义字符 俗称:改变意思的字符
\\t : 一个制表符,起到对齐的功能 类似于tab的作用
\\\\ : 一个\\ 文件路径通常表示是 C:\\\\Users\\\\Ushop\\\\Desktop\\\\mess\\\\textJava
\\n : 换行符
\\" : 一个"
\\' : 一个'
\\r : 一个回车,将光标移动到该行最前面,可能会引起覆盖的反作用
例如"罗念笙like dog\\r张洛融 ==> 显示内容:"张洛融"
*/
System.out.println("罗念笙\\tlove\\t张洛融"); // 运行结果: 罗念笙 love 张洛融
System.out.println("\\\\"); // 运行结果: \\
System.out.println("罗念笙\\nlove\\n张洛融"); // 运行结果:罗念笙 换行 love 换行 张洛融
System.out.println("\\""); // 运行结果: "
System.out.println("\\'"); // 运行结果:'
System.out.println("罗念笙 like dog\\r张洛融"); // 运行结果:张洛融
注释
单行注释 && 多行注释
注释的内容 不会被虚拟机JVM解释执行
// 单行注释
/*
多
行
注
释
*/
文档注释
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档
/**
* 文档注释
* @author 罗念笙 -- 文档注释中的注解
* @version 1.0
*/
public class hello
public static void main(String[] args)
System.out.println("helloworld~");
/*
笙式讲解:(下面的两行命令的区别如下图)
javadoc doc文件 生成的网页文件存放的文件目录 文档注释的java文件
1. javadoc -d C:\\\\Users\\\\Ushop\\\\Desktop\\\\mess\\\\textJava\\\\javadoc hello.java
javadoc doc文件 生成的网页文件存放的文件目录 java文件中的文档注释中所用注解(带@) 文档注释的java文件
2. javadoc -d C:\\\\Users\\\\Ushop\\\\Desktop\\\\mess\\\\textJava\\\\javadoc2 -author -version hello.java
我使用的编码类型是GB2312 在dos命令中无出现乱码的问题
如果你使用的是utf-8,添加 -encoding utf-8 (放在注解的位置前后) java代码采用的是utf-8字符编码编写的
添加 -charset utf-8 java doc html文件为utf-8字符编码
*/
-
未加入注解说明
-
加入注解说明
javadoc 标签(文档注解)
javadoc 工具软件识别以下标签:
*标签* | *描述* | *示例* |
---|---|---|
*@author* | *标识一个类的作者* | *@author description* |
*@deprecated* | *指名一个过期的类或成员* | *@deprecated description* |
*@docRoot* | *指明当前文档根目录的路径* | *Directory Path* |
*@exception* | *标志一个类抛出的异常* | *@exception exception-name explanation* |
*@inheritDoc* | *从直接父类继承的注释* | *Inherits a comment from the immediate surperclass.* |
*@link* | *插入一个到另一个主题的链接* | *@link name text* |
*@linkplain* | *插入一个到另一个主题的链接,但是该链接显示纯文本字体* | *Inserts an in-line link to another topic.* |
*@param* | *说明一个方法的参数* | *@param parameter-name explanation* |
*@return* | *说明返回值类型* | *@return explanation* |
*@see* | *指定一个到另一个主题的链接* | *@see anchor* |
*@serial* | *说明一个序列化属性* | *@serial description* |
*@serialData* | *说明通过writeObject( ) 和 writeExternal( )方法写的数据* | *@serialData description* |
*@serialField* | *说明一个ObjectStreamField组件* | *@serialField name type description* |
*@since* | *标记当引入一个特定的变化时* | *@since release* |
*@throws* | *和 @exception标签一样.* | *The @throws tag has the same meaning as the @exception tag.* |
*@value* | *显示常量的值,该常量必须是static属性。* | *Displays the value of a constant, which must be a static field.* |
*@version* | *指定类的版本* | *@version info* |
Java规范
DOS命令操作(了解)
-
讲解相对路径 VS 绝对路径(重要!!!)
-
DOS命令(大小写一样效果)
-
更改当前目录
切换成其他盘(改变根目录) cd (chang directory) 盘符号 例子:切换到E盘 cd: /D e: 或者 e: 切换成当前盘的其他目录 例子:cd 绝对路径 或者 相对路径 切换到当前的根目录 例子:cd\\ 切换到上一级目录 例子:cd ..
-
对文件夹的操作
创建文件夹(目录) 例子: md 文件名 (make directory) 删除文件夹(目录) 例子:rd 文件名 (remove directory) 复制文件到指定文件夹(目录) 例子: copy 复制的文件名 文件夹所在绝对路径 或者 相对路径 移动文件到指定文件夹(目录) 例子: move 移动的文件名 文件夹所在绝对路径 或者 相对路径
-
查看当前文件夹(目录)
查看当前目录的文件 dir (directory) 例子: dir (查看当前目录) dir 绝对路径 或者 相对路径 (查看指定目录下的文件) 以一种树状图的形式展示文件结构 用tree 代替 dir 例子: tree (查看当前目录的树状图结构) tree 绝对路径 或者 相对路径 (查看指定目录的树状图结构)
-
其他命令
帮助查看相关命令的使用 例子:help cd 清屏 例子:cls (clean screen) 退出 例子:exit
-
以上是关于Java概述的主要内容,如果未能解决你的问题,请参考以下文章