零基础学java(1)——Java编程语言概述

做了一段时间的java的开发,在往后学习的过程中,发现学习的比较乏力,基础并没有打牢,所以,决定根据尚硅谷的课程,重新回顾基础,特做系列博客,为自己以后复习翻阅,也为了帮助大家,快速入门!!!

1.Java SE阶段内容解释

在这里插入图片描述
这张图,基本就概况了Java SE阶段的学习过程,这篇文章,主要讲解Java发展历程,Java环境搭建等知识点,大多了解就好,不需要背。剩下知识点,在接下来系列文章中陆续推出,敬请期待!!!

2.Java历史概念

课程中介绍了很多,很全,但是作为新手,没必要知道那么多,如果有兴趣的可以点击下面的Java详情,进行具体的查看,我这边列举几个Java历史发展的几个重要时间点,了解即可。

Java历史:(了解)
1、诞生于SUN(Standford University Network)
2、大概于1996年发布正式的第一版
3、Java之父:詹姆斯.高斯林
4、2009年SUN被Oracle(甲骨文)收购
5、目前学习(开发)的版本是Java8
6、最新版本:Java16
7、Java分为三大方向:JavaSE,JavaEE,JavaME
Java9尝试把JavaSE,JavaEE,JavaME合起来。用模块的方式进行区分。

Java详情

3.Java特点

  • Java语言是易学的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
  • Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
  • Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
  • Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
  • Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
  • Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。
  • Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
  • Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

上面的内容,简单看看就好,等全部学完Java SE,再回头看这些,应该会有更深的感悟,下面贴几个我认为,相对重要的点:

Java的特点(了解)
(1)面向对象:关注类、对象、接口等,以及继承、实现等关系
(2)强类型:关注数据类型
(3)体系中立的:字节码.class文件
(4)垃圾回收:GC

4.Java程序运行机制

Java的运行机制是跨平台的,Java具有跨平台性。
那问题来了,什么是跨平台?

跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
“Write once , Run Anywhere”一次编写,处处运行。

原理:Java程序不是直接运行在操作系统上,而是运行在JVM(Java Virtual Machine)。
而不同的操作系统平台,可以安装不同的JVM。这个虚拟机只要下载安装就可以了,
程序员不用管,程序员只要关注自己的Java程序就可以。

了解了这些,那Java程序的开发和运行的步骤,是什么呢?

Java程序开发和运行的步骤:
1、编写Java代码,保存的代码的文件.java
后缀名:.txt,.doc,.jpg,.mp4等
2、编译Java代码为字节码,字节码文件.class
为什么要编译为字节码呢?因为JVM只认识字节码,不认识Java代码
3、运行字节码
把字节码再转成CPU能执行的机器指令。

5.Java开发环境搭建

这一个问题,分为三个阶段,给大家讲解,分别是JDK,JRE,JVM等基础概念,下载与安装以及卸载。

5.1. JDK,JRE,JVM

JDK:Java Developer’s Kit,Java开发工具包
JDK = JRE + 开发工具集

JRE:Java Runtime Environment,Java运行环境 JRE = JVM + 核心类库(提前写好的代码)

JVM:Java Virtual Machine,Java虚拟机, 运行Java程序需要用到JVM

如果仅仅是运行Java程序,只要装JRE就可以了,不需要装JDK。
如果是要开发Java程序,那么必须安装JDK。

5.2.下载与安装

网址:www.oracle.com
下载时注意:是什么平台
例如:windows的64位:jdk-8u141-windows-x64.exe

安装:傻瓜式安装
提醒:
①以后我们作为开发人员,安装软件时,要避免中文目录
②每一个软件的安装建立自己的目录

5.3.卸载

①控制面板
②通过“360”或“电脑管家”进行卸载

6.环境变量的设置

为什么要配置环境变量?

windows等操作系统,默认是在当前路径下找“命令”等工具的。 如果我希望它在我指定的目录下去查找这个“命令”,那么我就要
在path这个环境变量中,把目录添加上去。

windows等操作系统,除了在当前目录下查找,还会去path环境变量指定的目录下搜索命令。

【计算机】-》右键-》【属性】-》【高级系统设置】-》【高级】-》【环境变量】

【用户环境变量】只针对当前用户(操作系统登录的用户)
【系统环境变量】针对所有用户的

path=D:\ProgramFiles\Java\jdk1.8.0_141\bin;之前的环境变量的值
说明:;必须是英文状态下,半角输入,用于和其他原有的环境变量的分割
Win7
D:\ProgramFiles\Java\jdk1.8.0_141\bin;D:\ProgramFiles\mysql\mysql-5.6.26-winx64-server\bin;D:\ProgramFiles\tomcat\apache-tomcat-8.0.24\bin;d:\ProgramFiles\2345Soft\HaoZip;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\Intel® Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel® Management Engine Components\DAL;C:\Program Files\Intel\Intel® Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel® Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Lenovo\Fingerprint Manager Pro;C:\Program Files (x86)\Common Files\Lenovo;C:\SWTOOLS\ReadyApps;D:\ProgramFiles\MySQL\MySQL Server 5.5\bin

Win10
表格形式,一行一个环境变量

7.JDK版本查看

在命令提示符中输入:
java -version

8.第一个Java应用程序

/*
注释:写一下解释的文字,给程序员看的
三种形式:
(1)单行注释  //注释内容
(2)多行注释  斜杠* 注释内容 *斜杠
(3)文档注释  比较特殊,我们在后面注解部分讲解


Java的代码结构:
类{
	方法/函数{
		语句;
	}
}

class:类,声明类,定义类

Java程序的开发步骤:
(1)编写代码
要求:保存为.java的源代码文件
(2)编译代码
目的:把.java源文件编译为.class的字节码文件(因为JVM只认识字节码)
编译工具:javac.exe
如何使用编译工具:
	格式:javac 源文件名.java
	例如:javac HelloWorld.java
(3)运行字节码文件
运行工具:java.exe
如何使用运行工具:
	格式:java 字节码文件名或说是类名
	例如:java HelloWorld

保存快捷键:Ctrl + S
*/
class HelloWorld{
    
    
	/*
		Java程序的主方法,是Java程序运行的入口
	*/
	public static void main(String[] args){
    
    
		/*
			输出语句:""中的内容,表示需要原样输出的内容
		*/
		System.out.println("Hello Java!");
	}
}

9.问题一:编码问题

/*
问题1:乱码问题

1、原因
计算机的世界中只有0和1,
人类世界中字符是很丰富的。

最早人类使用计算机时,硬件机器语言,00000011100001111
后来,为了使用计算机的人方便,开始引入了助记符等,可以表示更丰富的字符等信息
		ASCII码:数字十进制的65表示字符A,计算机底层把65十进制再转为二进制
		最早ASCII码只能表示128字符
后来计算机不仅仅在美国了,会流传到其他国家。
		各个国家在ASCII码基础上扩展了128个,变成256个了,但是后面扩展的128个不具有通用性。
甚至计算机传入亚洲,就开始出现多字节编码,
		例如:中国GB2312,后来的GBK,台湾等地区Big5等
越来越多的字符编码出现,但是各国之间的文档交流出现问题。

计算机希望在全世界范围能够无障碍的交流,开始引入万国码,Unicode编码表,
这个编码表,可以用它的规则表示全世界所有的字符,每一个字符都有自己唯一的编码。

Unicode编码表只说了,字符用什么数字表示,但是这个数字范围跨度很大,有
1个字节的,2个字节的,3个字节的,4个字节等,在网络传输中出现问题,
例如,我收到4个字节的数据时,该表示为4个字符呢还是1个字符呢,
后面为了解决传输的问题,出现了UTF-8等编码方式,规定了,
到底几个字节是一个字符。

不同的编码方式对同一组数据解析出来的字符是不同的

2、如何解决
统一编码

修改当前源文件的字符编码:
方式一:【编码】菜单--》转为ANSI(与当前操作系统一致)编码


如果希望之后建立的源文件,都是与ANSI编码一致的,那么可以这样做:
方式:【设置】菜单-->【首选项】--》【新建】--》[ANSI]编码
*/
class Problem1{
    
    
	public static void main(String[] args){
    
    
		System.out.println("柴林燕是大美女!");
	}
}

10.问题二:大小写问题

/*
问题2:大小写问题
(1)源文件名.java的大小写问题
源文件名不区分大小写,但是我们强烈建议大家还是注意大小写
(2)字节码文件名(类名)
严格区分大小写的
(3)代码中大小写问题
严格区分大小写
*/
class Problem2{
    
    
	public static void main(String[] args){
    
    
		System.out.println("大小写问题");
	}
}

11.格式缩进问题

/*
问题3:格式问题(为了好看)
(1){}问题
风格1:推荐风格
class 类名{
	方法{
		System.out.println();
	}
}

从右边往左边看,结尾要么是{,},要么是;

风格2:延续老的C语言风格
class 类名
{
	方法
	{
		
	}
}
不建议混搭

风格3:不建议
class 类名{
	public static void main(String[] args){
		System.out.println("hello");		
										}}

(2)缩进问题
class 类名{
Tab键public static void main(String[] args){
Tab键Tab键System.out.println("xxx");
Tab键}
}		

往右缩进:Tab键
往左回缩:Shift + Tab键								
*/
class Problem3{
    
    
	public static void main(String[] args){
    
    
		System.out.println("xxx");

		for(int i=0; i<5; i++){
    
    
			System.out.println("yyy");
		}
	}
}

12.源文件与类名问题

/*
问题4:源文件名和类名的问题
1、源文件名和类名一致
javac 源文件名.java
java 类名

例如:
javac Problem4.java
java Problem4

2、源文件名和类名不一致
javac 源文件名.java
java 类名

例如:
javac Problem4.java
java Other

在cmd命令行,如何重新运行之前执行过的命令?
按↑,查找之前的命令
按↓,查找某个之后的命令

3、如果某个类是public,那么这个类必须与源文件名一致
换句话说,一个源文件只能有一个public类

4、一个源文件可以编写多个类吗?如果可以,编译后会怎么样呢?
如果一个源文件有多个类,那么编译后会产生多个.class文件。
字节码文件名就是类名。

平时开发中,一个.java文件,只写一个类,除非有内部类。
而且源文件名和类名一致。(因为后期好维护)
*/
public class Problem4{
    
    
	public static void main(String[] args){
    
    
		System.out.println("源文件名和类名一致");
	}
}

class Other{
    
    
	public static void main(String[] args){
    
    
		System.out.println("源文件中有另一个类");
	}
}

class Three{
    
    
	
}

13.练习一:打印个人信息

/*
练习1:打印个人信息

(1)数据类型
"柴林燕" -->字符串
18-->整数,整型
'女'-->字符,单个字符
true-->布尔值,逻辑值,它只有两种情况,true和false
40.5-->小数类型
(2)常量
字符串的常量必须用""(双引号)
单字符的常量,必须用''(单引号)
其他整数、小数、布尔等不需要加符号。

System.out.println(xx);  输出xx之后换行,ln==line
System.out.print(xx);输出xx之后不换行,下面的输出内容就会接着输出
*/
class TestExer1{
    
    
	public static void main(String[] args){
    
    
		System.out.println("柴林燕");
		System.out.println(18);
		System.out.println('女');
		System.out.println(true);
		System.out.println(40.5);
		System.out.println("--------------------------------");
		
		System.out.print("姓名:");
		System.out.print("柴林燕");
	}
}

おすすめ

転載: blog.csdn.net/weixin_43912367/article/details/116859648