Java【初识篇】语言概述
什么是计算机语言
语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,就要学习英语。
计算机语言(编程语言):人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。计算机语言有很多种,如:C,C++,Java,Python等。
什么是程序
为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合,就是计算机程序;
编写程序的工具就是计算机语言,Java是目前应用最广泛的编程语言。
最新编程语言排名
https://www.tiobe.com/tiobe-index/
Java平台有三个版本
JavaSE
Java Platform Standard Edition 标准版,包含Java语言的基础核心
用于开发桌面应用程序,如QQ、记事本、计算器等
JavaEE
Java Platform Enterprise Edition 企业版,以前也称为J2EE,包含JavaSE
用于开发企业应用程序,如Web网站、分布式应用等
JavaME
Java Platform Micro Edition 微缩版/移动版
用于开发移动设备/嵌入式设备的应用,如手机游戏
Java语言特点
特点一:面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二:健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分。如:指针、内存的申请与释放等
特点三:跨平台性
一次编写,处处运行;
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。
特点四:安全的
安全机制,防止恶意代码的攻击
特点五:简单的
语法简洁,去除不常用的功能
Java两大核心机制
Java虚拟机(Java Virtual Machine)
垃圾收集机制(Garbage Collection)
Java虚拟机
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
JVM 用于运行 Java 应用程序
对于不同的平台,有不同的虚拟机,Java的跨平台就是通过在不同的平台安装相应的JVM来实现的。
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
编译:通过编译器
执行:通过解释器
源文件 -- 编译器编译源文件 -- 生成字节码文件 -- 解释器解释执行字节码文件 -- 程序运行
垃圾收集机制
垃圾回收:将不再使用的内存空间进行回收。
在 C/C++ 等语言中,由程序员负责回收无用内存。
Java 不需要程序员负责回收无用的内存:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。
JDK & JRE
简单而言,使用 JDK 的提供的开发工具完成 java 程序的开发,使用 JRE 运行开发好的 Java 应用程序。
JDK(Java Development Kit Java开发工具包,包含jre):JDK是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了
JRE(Java Runtime Environment Java运行环境,jre可以单独装,用于只运行不开发) :包括Java虚拟机(JVM:Java Virtual Machine)和 Java 程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。运行需要jre运行环境,java在虚拟机中运行,jre中有jvm。
jdk
jdk包含了jre
jdk、jre、jvm的关系
前者包含后者:jdk包含jre,jre包含jvm
下载、安装JDK、配置环境变量
安装路径不要有中文或者特殊符号如空格等。
当提示安装 JRE 时,可以选择不安装。
参考:https://www.cnblogs.com/uncleyong/p/10732951.html
编写第一个 Java 应用程序
步骤:
将 Java 代码编写到扩展名为 .java 的文件中
通过 javac 命令对该 java 文件进行编译
通过 java 命令对运行 class 文件(如果.java文件修改了,需要删除.class字节码文件,然后重新编译)
package com.uncleyong; public class HelloWorld{ // main 方法 public static void main(String [] args){ // 在控制台中打印字符串 System.out.println("Hello World!"); } }
说明:
package:关键字,表示包
com.uncleyong:包名,点号在windows中表示\
public:java的修饰符,公开的
class:关键字,表示类
HelloWorld:类名
static:java的修饰符,静态的
void:表示返回类型
main:Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String[] args) {...},如果没有 main 方法则在运行时会抛出如下异常
String[] args:方法的参数列表,String是一个类名,表示的是字符串,args是变量名,可以更改
System:类名,系统这个类
out:系统类中的属性,表示系统输出流
println:系统输出流中的方法
"Hello World!":字符串,双引号包起来
Java 语言严格区分大小写
Java方法由一条条语句构成,每个语句以分号结束
一个 Java 源文件中最多只能有一个 public 类。其它类的个数不限,如果源文件文件包含一个 public 类,它必须是该类名命名。
如果文件中类都没有带public,那么文件名可以任意(可以和任意一个类名一样,也可以和所有类名都不一样),但是,运行的时候,java后面跟包含main方法的类名
注意:一般一个java文件中就只写一个类
HelloWorld.java class HelloWorld2{ //main 方法 public static void main(String [] args){ //在控制台中打印字符串. System.out.println("HelloWorld!"); } } class Test{ public void test(){ System.out.println("测试类。"); } }
编译的时候,文件要带后缀
运行的时候,java后面跟的是包含main方法的类名
文件中两个类,编译后生成两个class文件
如果java Helloworld2报如下错,就检查环境变量(classpath加上.;)
错误: 找不到或无法加载主类 HelloWorld2
如果java文件中有包名
文件名:HelloWorld2.java
package com.uncleyong.ex; class HelloWorld{ //main 方法 public static void main(String [] args){ //在控制台中打印字符串. System.out.println("Hello, World!"); } } class HelloWorld3{ public void test(){ System.out.println("test"); } }
javac加-d参数
java运行的时候,要带上包名;
javac运行之后,会根据包名生成相对应的文件夹名;
一个类中可以有多个方法(可以包含main方法,main方法位置随意)
文件名:HelloWorld2.java
class HelloWorld{ public void test(){ System.out.println("test"); } //main 方法 public static void main(String [] args){ //在控制台中打印字符串. System.out.println("Hello, World!"); } }
另外,如果java文件已经在对应的包下,编译时就不需要-d参数了,运行时还是要加包名
另外,常用的DOS命令
常用的DOS命令 –dir(directory) : 列出当前目录下的文件以及文件夹 –md(make directory) : 创建目录 –rd(remove directory) : 删除目录 –cd(change directory): 进入指定目录 –cd .. : 退回到上一级目录 –cd \: 退回到根目录,或者cd / –exit : 退出 dos 命令行
注释
注释:用于解释说明程序的文字,提高了代码的阅读性。
Java中的注释类型:
单行注释,格式: //注释文字
多行注释,格式: /* 注释文字 */
文档注释(java 特有),格式:以 /** 开始,以 */结束,文档注释允许你在程序中嵌入关于程序的信息,有了这个注释就可以使用 javadoc 工具软件来生成信息(比如:javadoc xxx.java),并输出到HTML文件中
注释是一个程序员必须要具有的良好编程习惯。
将自己的思想通过注释先整理出来,再用代码去体现
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行
多行注释不能嵌套。
编码规范
语句必须以分号结尾
标点符号必须为英文符号
大小写敏感,即区分大小写
建议:
所有命名不建议使用中文、空格、特殊字符等,不要以数字开头
一行只写一条语句
{}的使用及位置
合理的代码缩进
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!