JavaSE学习第一天

发布于:2023-01-22 ⋅ 阅读:(9) ⋅ 点赞:(0) ⋅ 评论:(0)

计算机组成部分:

计算机主要分为硬件和软件两部分。

·一般来说,硬件包括计算机中可以看得到的物理部分,即能看得见的,摸得着的,带电的电子元器件。

·而软件,一般通过控制电子信号,来管理和操作底层硬件。

软件主要分为系统软件和应用软件:

系统软件(操作系统OS):主要用来控制和管理底层硬件,来为用户提供最基本的计算机功能。

操作系统其实就是用户与硬件之间的桥梁。

应用软件:具有特殊领域功能的软件。

一台计算机是由以下几个主要的硬件组成构成的:

·中央处理器(CPU):CPU不从硬盘读数据,因为CPU速度很快,而硬盘很慢,所以CPU是从内存读数据的,内存的速度只比CPU慢一点,CPU是不断读取内存,所以当软件开多的时候,CPU处理不过来,所以就会产生卡顿。

·GPU:图新图像处理器,即显卡,帮助CPU处理一些数据。

·内存(运行内存):内存卡主要存储一些临时性设备,电脑一关机就没了。

·存储设备(硬盘,磁盘大小):硬盘主要存储一些永久性数据,早期使用磁带来存储数据,被称为软盘,也被称为A盘和B盘,最大也就几十MB,后来硬盘产生,算是保留,硬盘一般从C盘开始命名。

硬盘也分为机械硬盘和固态硬盘,主要存储10101的数据(即二进制数据),机械硬盘类似唱片机用针读取,存在时间比较久,不易毁坏,但是读取慢;固态硬盘如果长时间不使用,数据可能就不准确了,但读取快。

一般C盘默认为系统盘。

·输入设备(键盘,鼠标等):给计算机输入一些指令,数据等,输入的数据先是在内存里,只有在保存(ctrl+s)之后才会存在硬盘里。

注意:要记住保存。

·输出设备(显示屏等)

·通信设备(无线适配器等)

人机交互方式:

·图形化界面:最常用的一种交互方式,主要以图形界面的形式提供给用户进行操作,像平时桌面使用等。

优点:简单直观易上手操作。

缺点:体积大(除了底层代码还会存在大量的图像图片等。),步骤繁杂(查看一些东西需要许多步骤),不易管理。

·命令行界面:主要是以字符为形式的一种交互方式,最早期的形式,在Linux中是最主要的一种操作方式。

在Windows中通过win+r打开运行,然后输入cmd进入终端。

优点:效率高。

缺点:需要记命令。

所谓的命令就是OS平台下的可执行程序,即已经被编译好的代码,也可理解为已经写好并编译过的程序。

一些常用的命令行指令(dos命令):

·dir:列出当前目录下的文件以及文件夹。

·md:创建目录。

·rd:删除目录。

·cd:进入指定目录。

·cd..:返回上一级目录。

·cd/:退回到当前硬盘的根目录。

·del:删除目录。

·exit:退出终端。

·help:帮助命令。

·D: :切换到D盘。

学习命令是因为前期在Java代码编译和运行的时候,我们主要是以命令行的形式操作,可以看到一些集成环境中看不到的知识。

还可以在运行中输入powershell。

在这个界面既可以使用cmd里的指令,也可以使用Linux里的指令,即可以使用多种操作系统的指令,比较万能。

计算机语言:

·机器语言(二进制,由0和1组成):机器只能识别机器语言,其他语言都无法识别,使用时都是将其他语言转换成机器语言再进行使用的,但是对程序员不友好,不易使用。

·汇编语言:出现了一些单词字符来标识一些计算机的操作指令,但是在编制代码的时候,程序员必须考虑计算机底层的实现细节(比如内存管理,CPU运算的逻辑等),是面向机器的语言,受不同机器的限制,增加了程序员的入门门槛。

·高级语言:主要以人类的思维方式来进行编程的,人能看懂,但是计算机看不懂,需要编译的步骤,将源代码编译成计算机能够识别的机器语言(二进制),例如exe(Windows平台上的可执行程序)。

主要分为两大类:

·静态编译型(C,C++,Java):

静态:变量有严格的数据类型之分(数据是直接存再变量空间中的)。

编译型:先将源代码全部进行编译,生成一个二进制文件,最后运行该二进制文件即可,即一次性编译完,然后再运行。

·动态解释型(Python,Js,Go):

动态:没有严格的数据类型之分(数据存在堆内存中,变量空间中存储的是数据在堆内存中的地址)。

解释型:读取一行源代码,进行编译,生成一段二进制代码(可以存在于内存,也可以存在于硬盘),在运行,以此类推,即一边读取,一边翻译,一边运行,可以生成一个二进制文件,也可以不生成。

java:

分为三种技术架构:

·Java EE企业版:再标准版的基础上构建的,在企业中一般都是使用这个版本。

·java SE 标准版:基础版本。

·java NE微型版:一般在手机等方面上使用,但现在使用较少。

·java是面对对象的,是一种跨平台的技术:只需要写一份代码,在不同的操作系统都可以使用。

这是通过在运行java应用程序的操作系统上,先安装一个java虚拟机(JVM),通过JVM来负责java程序在该系统中的运行。

java开发环境搭建:

JRE与JDK。

· JRE(Java Runtime Environment Java):运行环境,如果计算机只是运行Java程序的话,装这个就行。

JRE是核心类库和JVM的合成,即JRE=核心类库+JVM。

JVM:Java Virtual Machine Java虚拟机。

常见的操作系统:Windows,Linux,MAC都是由Unix(最早的多任务多通道的操作系统)衍伸出来的,那时候Unix是由C语言写的。

VM充当翻译官的角色,将Java源代码(**.java)经过编译生成的字节码文件(**.class)加载进JVM中运行,JVM会根据字节码的具体内容,将其翻译成本地执行语句,交给本地OS执行。对于跨平台机制,是针对字节码文件的,不同的OS平台有其各自的JVM版本。

所以Java是运行在JVM虚拟机上的,而不是各种OS上的。

· JDK(Java Development Kit Java):开发工具包,如果计算机要进行Java程序的开发,装这个。

JDK=开发工具+JRE

JDK的目录:

· bin(binary即二进制)目录:里面全是Java在Windows平台上的开发工具,都是可执行程序。

javac:编译工具。

java:运行工具。

通过WIndows的控制台进入jdk开发工具包的bin目录:

```

C:\Users\HENG>cd /

C:\>cd "Program Files"

C:\Program Files>cd Java

C:\Program Files\Java>cd jdk1.8.0_77

C:\Program Files\Java\jdk1.8.0_77>cd bin

C:\Program Files\Java\jdk1.8.0_77\bin>

C:\Program Files\Java\jdk1.8.0_77\bin>javac

用法: javac <options> <source files>  

即javac 源代码文件(**.java)

C:\Program Files\Java\jdk1.8.0_77\bin>java

用法: java [-options] class [args...]

           (执行类)

   或  java [-options] -jar jarfile [args...]

           (执行 jar 文件)

即java 字节码文件(xxx [参数列表] 注:可以有参数,也可以没有)

·include目录:存放的都是C语言的头文件,因为JVM需要将字节码的内容转换为本地平台的具体执行指令,这是用于转换字节码指令的。

·src.zip压缩包:Java的源代码-核心类库。

所以简单而言:使用JDK开发完成的java,交给JRE去运行。

我们安装JDK即可。

JDK下载安装:

·登录Oracle官网:https://www.oracle.com

·首页菜单栏选java

·选择lean more about jaba SE

·点击Downloads

·下拉到JavaSE 8点击JDK Download

·下拉到下载列表,按需选择下载(下载Windows x64版本JDK)

·接受协议,并点击下载(需登录)

·下载后打开JDK进行安装,一路next即可(安装默认在C:\Programs\Java\下,建议不要修改)

验证JDK是否安装成功:

在终端中输入java -version,出现如下即成功。

C:\Users\Administrator>java -version

java version "1.8.0_221"

Java(TM) SE Runtime Environment (build 1.8.0_221-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

VSCode编辑器安装

·登录官网https://code.visualstudio.com/

·展开下载列表,按需下载,建议Stable稳定版。

·下载后一路next即可。

设置内容:

·文件编码:左下角管理-设置-文本编辑器-文件-Encoding-Simplified Chinese(GBK)

·字体大小:左下角管理-设置-文本编辑器-字体-FontFamliy字体样式-Consolas

FontSize字体大小

·主题颜色:左下角管理-颜色主题

·中文设置:左下角管理-扩展-搜索Chinese

path环境变量配置:

开发工具和源代码并不在同一个文件夹下,除非给源文件前写全路径,要么给开发工具前写全路径,会比较麻烦,为了在任何目录下都能够执行javac和java这两个开发工具,所以要配置环境变量。

·计算机图标右键属性

·高级系统设置

·在高级中找环境变量

·点击下方的新建

·在变量命中输入JAVA_HOME

·在变量值中输入JAVA中JDK内的目录,默认C:\Program Files\Java\jdk1.8.0_221

·点击确定,并再次点击新建

·变量名:CLASSPATH

·变量值:.;%JAVA_HOME%\lib

·点击确定

·点击下方列表中的path,然后点击下方的编辑

·新建%JAVA_HOME%\bin

·然后确定即可。

验证环境变量配置是否成功:

在终端中,输入以下命令,出现相对应的回复即为成功。

C:\Users\Administrator>javac -version

javac 1.8.0_221

java代码编写:

常见编码错误:

主要分为两种:

·编译时错误:主要是编译不通过,主要原因在于语法格式问题。

·运行时错误:编译能通过,但是运行报错,主要原因在于代码逻辑问题。

  1. 类名和文件名(**.java)最好一致,不一致的话容易造成找不到文件类似的错误(如果这个类是public的,类名必须和文件名一致,并且一个java文件中,最多有一个public的类)。字节码文件(**.class)的名称和代码中类名一致的,和文件名不一致,为了统一,文件名和类名要一致。
  2.  一个文件中有多个类 那么在编译的时候同时生成这么多个字节码文件。
  3.  在java中,任何单词都是区分大小写的,并且JVM只认main为主函数,即必须有一个主函数。

遗漏相关符号,单词语法拼写错误:

例:

  1. 错误: 需要<标识符>,一定是有单词拼错了。
  2. 错误: 解析时已到达文件结尾,一定是括号没弄对。
  3. 错误: 需要';',要么是缺少;,要么是大括号没弄对。
  4. 错误: 未结束的字符串文字,可能是字符串的双引号没打好。
  5. 错误: 找不到符号,可能是字符或字符串没打引号,也有可能是该字符没有定义。
  6. 英文报错,可能是运行错误,比如10/0,无法计算。

注意:为了规范,+ - * / 的两边应该加上空格。

基本格式:

public class Demo01 //其中Demo01为java文件的文件名(文 件名的首字母要大写)

{

public static void main(String[] args)//主函数,程序的开始与入口,String的S要大写。

{

System.out.print(“hello”);//System的S要大写。

} //括号内的属于函数的内容

}//括号内的属于类的内容。

其中System.out.print(“hello”);为输出语句,为输出hello。

在print后加上ln即可换行,即println。

在输出数值时不用加双引号,当输出字符时需要加双引号,当 想要字符与数值同时输出,可以使用这个格式System.out.print (“hello”+1);即可输出hello1。

当代码编写完毕后,在终端里输入javac Demo01.java来生成class文件,然后输入java Demo01来运行代码。//其中Demo01为文件名。

标识符:

对程序中出现的一些事物所起的名称,称之为标识符,主要用于给变量名,函数名,类名,包名,常量名。

为了把上述这五个通过命名方式进行区分,订出来了一套规范。

标识符规则:

·标识符是由字母,数字,下划线_,美元符$构成的字符序列。

·标识符必须以字母,下划线或美元符开头,不能以数字开头,从JDK8之后,也不建议单独的下划线和美元符组成标识符,有时候会报错。

·严格区分大小写。

·标识符可以为任意长度,但必须是一个连续的字符序列,中间不能有空格。

·取名尽量要有意义。

·标识符不能是关键字。

·标识符不能是java内置关键字数据(true,false,null等)

·标识符不能是API里面的已知类的名称。

标识符命名规范:

·变量名/函数名:如果名称由多个词语组成的话,第一个单词首字母小写,其他单词首字母大写。myName yourFriend()

·类名/接口名:如果名称由多个词语组成的话,所有单词首字母大写。Person YourFriend

·常量名:所有单词大写,单词与单词之间用下划线分隔。MAX_VALUE

所谓的规范,其实就是通过单词长的样子,来快速区分出标识符的作用,但不同语言的规范之间可能会有区别。

例:

关键字:public class static void

自定义标识符:Hello main args

类:Hello String System

变量:args out

函数:main() println()

注释:

注释是用于注解说明程序的,给人看不给计算机看,所以注释不进字节码。

· 单行注释//://后到本行结束的所有字符会被编译器忽略。

·多行注释/* */:/* */之间的所有字符会被编译器忽略,可以跨行,但是多行注释不能嵌套,不可以再次出现多行注释,但可以出现单行注释。

·文档注释/** */:/** */之间所有字符会被编译器忽略,注释内容可以通过javadoc命令将注释的内容进行提取,并生成一份该代码的说明书,生成的是一个HTML文档(静态网页),文档注释也不能嵌套。

注:以后写代码,尽量将重点内容注释。