Java基础学习笔记:Java语言概述
程序员文章站
2024-03-11 21:06:13
...
知识点1:Java基础的目录结构
说明:面向对象是重点!!
知识点2:Java语言介绍
1. 人机交互方式
2. 常用的dos命令
3. 计算机编程语言的分代
第一代:机器语言
第二代:汇编语言
第三代:高级语言
> 面向过程的语言:C、Pascal、Fortran面向过程的语言
>
> 面向对象的语言:Java 、C# 、Scala 、 Python
4. Java的历史
1991年 Green项目,开发语言最初命名为Oak (橡树)
1994年,开发组意识到Oak 非常适合于互联网
1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
1998年,发布JDK 1.2,同年发布企业平台J2EE
1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
2009年,Oracle公司收购SUN,交易价格74亿美元
2011年,发布JDK 7.0
2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
2017年,发布JDK 9.0,最大限度实现模块化
2018年3月,发布JDK 10.0,版本号也称为18.3
2018年9月,发布JDK 11.0,版本号也称为18.9
5. Java技术平台的划分
6. 主要的应用场景
企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。
Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。
大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。
7. Java语言的特点
- 面向对象性
- 健壮性
- 去除了C/C++中的指针
- 提供了自动的内存管理机制(内存的自动申请和释放)
- 跨平台性
- write once , run anywhere
- 之所以能实现一次编译,到处运行,归功于:JVM
Java程序还会出现内存泄漏和内存溢出问题吗? Yes!
知识点3:环境的搭建
1. JDK、JRE、JVM的关系
JDK(Java Development Kit Java开发工具包)
JRE(Java Runtime Environment Java运行环境)
JVM(Java Virtual Machine Java虚拟机)
2. 下载、安装JDK
傻瓜式安装
3. JDK的安装后的路径
bin:存放java的相关可执行行的命令。比如:javac、java、javadoc、jstack、jmap、jmc、javap、jvirtual 等
include:存放c数据头。java底层是使用C语言编写的
lib:相关可执行性命令对应的一些jar文件等
src.zip:存放java的源代码
4. 配置环境变量
知识点4:HelloWorld
1. 编写程序
class HelloChina{
public static void main(String[] args){ //args: arguments 参数
System.out.println("hello,China!!");
System.out.println("hello,China!!");
System.out.println(123 * 71);
}
}
2.执行过程
1.将 Java 代码编写到扩展名为 .java 的文件中。
2.通过 javac 命令对该 java 文件进行编译。
3.通过 java 命令对生成的 class 文件进行运行。
3. 常见的错误
- 编译或运行时的文件名不对
- 代码中{}成对出现
- main()的格式是固定的:public static void main(String[] args) 或 public static void main(String args[])
- 每一行执行语句最后以;结尾!!
知识点5:注释
/*
Java有三种注释信息:
方式一:单行注释 //
方式二:多行注释
1.单行注释和多行注释的作用:
① 对程序中的变量、执行流程、方法等进行解释说明
② 用于程序的调试
2. 单行注释和多行注释的特点:编译之后生成的字节码文件中,不包含当行注释和多行注释注释掉的信息。
3. 多行注释不可以嵌套使用
方式三:文档注释(java特有)
作用:注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
*/
/**
文档注释信息:
@author shkstart
@version 1.0
@date 2020-6-22
这是我的第一个java程序!感觉很不错!!
*/
public class TestComment{
/*
这是程序的入口
格式是固定的!
*/
/**
这是main()方法,作为程序的入口
*/
public static void main(String args[]) { //args : arguments的缩写
System.out.print("Hello World!"); //print():输出内部的数据即可
System.out.println("Hello World!");//println():输出内部的数据之后,换行
//System.out.println("Hello World!")
}
}
如何生成javadoc对应的文档?
总结:
1. 编写-编译-运行的过程:
- 编写一个java文件,名为:HelloWorld.java
内容为:
class HelloChina{
public static void main(String[] args){
System.out.println("hello,China!!");
}
}
- 编译:javac HelloWorld.java
生成HelloChina.class文件
- 运行:java HelloChina
2. 一个java源文件中可以编写多个java类。编译之后,会生成多个以类名命名的字节码文件
class HelloShangHai {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
class SongJiang{
}
class Person{
}
class Dog{
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-658HEkei-1593436595210)(assets/1592813330208.png)]
3. 一个java源文件中,最多只能有一个类声明为public的。且此类的类名,必须有java源文件名相同
4. java语言严格区分大小写
知识点6:关键字和保留字
关键字(keyword)的定义和特点
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EPFW0Kpt-1593436595211)(assets/1592816716644.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkOJRLMc-1593436595212)(assets/1592816725113.png)]
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
比如:goto 、const
知识点7:标识符
- 概念
1. java中定义的变量名、方法名、类名、接口名、常量名、包名等都是标识符
2. 技巧:凡是可以自己命名的地方,都是标识符
- 命名规则
3. 定义合法标识符规则:
> 由26个英文字母大小写,0-9 ,_或 $ 组成
> 数字不可以开头。
> 不可以使用关键字和保留字,但能包含关键字和保留字。
> Java中严格区分大小写,长度无限制。
> 标识符不能包含空格。
小结:凡是不满足上述规则的命名,都会报编译的错误!
- 命名规范
4. 标识符命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz (大驼峰)
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz (小驼峰)
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
小结:如果不满足上述的规范,编译、运行仍可正常执行。
要求大家在开发时,要遵循上述的规范!
- 注意点
5. 给标识符命名时,要见名知意。
- 对应的代码测试
class IdentifierTest {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
class _8hello1
{
}
class public1{
}
class Goto{
}
class Ren{
}
class staticvoid{
}
class Hello123{
}
/*
class hello123{
}
*/