Java基础
前言
**新手入门,带你走进IT世界**
提示:以下是本篇文章正文内容
一、Java发展史
1.1Java由来
Java 语言是美国 Sun 公司(Stanford University Network)在 1995 年推出的计算机语言。
后被 Oracle 公司收购
java之父,詹姆斯 高斯林
1.2 Java入门的基本知识
1.2.1计算机的高级语言
最早的编码 在纸带上打孔,没有空代表0,有空代表1;因为我们的计算机是使用电,计算机只有通电和断电的两种状态,我们把通电表示1,没电表示0;也就是说我们的电脑只认识人类规定的0和1;
汇编语言:就是一组一组的指令。
高级语言:C语言 C++语言 Java语言 ...
1.2.2 Java优点
跨平台:
平台:就是值操作系统,比如:Windows系统 macOS系统 Linux系统
优点:Java程序只需要编写一次,可在任何平台运行,也就是说能做到一次编写,到处运行
跨平台的原理:
正对不同平台提供不同翻译器,这个翻译器在Java中叫Java虚拟机 简称JVM
虚拟机跨不跨平台?
虚拟机不跨平台
1.2.3 Java有哪些组件
Java虚拟机:
JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JRE:
Java运行环境包含Java虚拟机和核心类库
JDK:
Java开发工具包,包含了JRE和开发工具,是Java程序员,做Java开发的时,使用的工具。
JDK包含了JRE, JRE包含了JVM
二、JDK的安装和配置
2.1 JDK 的卸载
卸载的注意事项:
卸载一定要使用卸载的工具来卸载JDK,建议使用系统自带的卸载工具
Windows系统的的卸载工具
1.控制面板
2.卸载程序
3.在弹出框中找到要卸载的软件,双击卸载
2.2 JDK的安装
1.建议不要安装系统盘
2.建议自己规划目录
建议目录不要使用中文,不要有空格,不要有英文字母外的他字符
2.3 JDK的下载
1.自学的时候:
在官网下载
2.学校学习时:
找老师要
3.在公司做开发的时候 ☆
找同事要,或者到公司服务器下载和当前项目相同的版本的JDK
2.4 JDK配置
1.配置
JAVA_HOME
值:D:\develop\Java\jdk-16.0.1
2.编辑path变量
添加 %JAVA_HOME%\bin
移动到path变量的最前面
2.5学习简单的Windows命令
1.win键+R键 在左下角弹出一个弹出框,键入cmd,按下回车键
就可以打开windows命令行窗口
2.简单的Windows命令:
2.1 dir命令:
展示当前文件夹中所有文件和文件夹
2.2 切换盘符:
盘符名字+冒号:
2.3 cd命令
cd+当前盘符中的单级目录:就是进入指定的文件夹
举例子:cd develop 进入develop文件夹中
cd+当前盘符中的多级目录:就是进入指定的多级目录下的一个文件夹
举例子:cd D:\develop\Java\jdk-16.0.1\bin 进入到D:\develop\Java\jdk-16.0.1\bin文件夹
cd+/或者 cd+\ 回到当前盘符的根目录
cd+.. 回到当前目录的上一级目录,直到回到根目录为止
2.4 cls 命令
清屏的命令。清除当前命令行窗口中显示的信息
2.5 ping命令:
测试网络是否连通
2.6 ipconfig命令
查看当前机器的IP地址 ipconfig
查看当前电脑中所有网络配置使用 ipconfig /all
2.6 JDK 的安装目录
目录名称 | 说明 |
---|---|
bin | 该路径下存放了 JDK 的各种工具命令。Javac 和 java 就放在这个目录 |
conf | 该路径下存放了 JDK 的相关配置文件 |
include | 该路径下存放了一些平台特定的头文件 |
jmods | 该路径下存放了 JDK 的各种模块 |
legal | 该路径下存放了 JDK 各模块的授权文档 |
lib | 该路径下存放了 JDK 工具的一些补充 JAR 包 |
2.7 测试JDK是否配置成功
1.打开命令行窗口
2.在窗口中输入
javac 命令 使用类编译Java文件 生成计算机看得的懂得.class文件 或者叫字节码文件
java 命令 是运行字节码文件和计算机交互,输出程序员想要的结果
3.每次输入命令后,都有提示输出,就表示,JDK安装和配置成功
三、第一个Java程序的编写
3.1 HelloWorld代码编写
开发 Java 程序,需要三个步骤:编写代码,编译代码,运行代码
编写代码:
1.新建文本文档
2.修改扩展名为java
3.修改文件名为HelloWorld
4.编写代码
public class HelloWorld{
public static void main(String[]args){
System.out.println("HelloWorld");
}
}
5. 编译代码
javac HelloWorld.java
生成.class文件 或者叫字节码文件
6.运行代码
java HelloWorld
输出结果:
HelloWorld
3.2 编写过程中遇到问题
1.大小写问题:
java程序区分大小写
2.类名的命名问题:
一般如果 class 前面有 public 修饰,要求类名和文件名一模一样
如果一个Java文件中只有一个java类,而且 class 前面没有 public 修饰,不要求类名和文件名一模一样(建议一样),编译后生成的class文件和类名一样
如果一个Java文件中有多个类,只能有一个Java类使用public修饰,被public修饰类,类名要和Java文件名一模一样
3.中文字符问题:
3.1 统一编码
使用相同的编码进行编译
3.2 使用java文件的编码进行编译
格式:javac -encoding 编码 java文件
举例子:javac -encoding utf-8 HelloWorld.java
4.括号问题:
Java中所有括号都是成对出现的,有左边就有右边
3.3 bug由来
Bug一词的原意是臭虫或虫子。第一代计算机是由许多庞大的真空管组成,并利用大量的电力来使真空管发光。引得一只小虫子Bug钻进了一支真空管内,导致整个计算机无法工作。研究人员费了半天时间,总算发现原因所在,把这只小虫子从真空管中取出后,计算机又恢复正常。后来,Bug这个名词就沿用下来。
与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”,意即“捉虫子”或“杀虫子”。遗憾的是,在中文里面,至今仍没有与“Bug”准确对应的词汇,于是只能直接引用“Bug”一词。虽然也有人使用“臭虫”一词替代“Bug”,但容易产生歧义,所以推广不开。
四、nodepad++文本编辑器
可以帮助我们更好的完成java程序的开发
1.安装软件
2.配置软件编码
找到设置菜单 ==> 首选项 ==> 在弹出框中的左边找到新建 ==>右边选Windows 默认语言选择java 编码选择ANSI
五、java基础知识
5.1 注释
/*
注释:注释就是对程序的解释和说明,方便代码的阅读,只参与编译,不参与运行
分类:
1.单行注释 //
2.多行注释
3.文档注释
*/
//2.多行注释
/*
*/
//3.文档注释
/**
*
* 文档注释是用来生成java说明文档的,等我们讲到API的时候,我们在讲一下
*/
/*
这个类是java类,类名叫HelloWorld
class 用来定义一个类的,特殊单词 使用方法:class加类名
public 在这里是用来修饰类的,被public修饰的类,文件名必须和类名一致,否则报错
*/
public class HelloWorld{
/*
这是main方法,是java的主方法,Java中所有程序的执行,都在在main方法中运行
main方法的写法是固定的
*/
public static void main(String[]args){
//这是一个输出语句,用来输出双引号中的内容
System.out.println("你好 世界");
}
}
5.2 关键字
1.有特殊含义
2.单词全部字母都是小写
3.在高级文本编辑器中高亮显示
5.3 常量/字面量
/*
常量:
在程序的运行过程中,值不可能改变
分类:
字符串常量: "你好 世界" "HelloWorld"
字符常量:'a' '中'
整数常量:520 1314
小数常量:5.20 13.14
布尔常量只有两个值:true false
空常量 null 不可以直接打印
*/
public class Demo01{
public static void main(String[]args){
//双引号引起来的,在java中叫做字符串
System.out.println("你好 世界");
System.out.println("HelloWorld");
//单引号引起来的,在Java中叫做字符常量,里面只能放一个字符,也能放一个中文字符
System.out.println('a');
System.out.println('中');
//整数常量
System.out.println(520);
System.out.println(1314);
//小数常量
System.out.println(5.20);
System.out.println(13.14);
//布尔常量 布尔常量只有两个值:true false
System.out.println(true);
System.out.println(false);
//空常量 null 不可以直接打印
//System.out.println(null);
}
}
/*
需求:将(姓名,年龄,性别,身高,婚姻状况)打印在控制台
张三
23
男
180.1
false
*/
public class Demo02{
public static void main(String[]args){
System.out.println("张三");
System.out.println(23);
System.out.println('男');
System.out.println(180.1);
System.out.println(false);
}
}
5.4变量
5.4.1 数据类型
基本数据类型
整数类型
byte 1个字节 -128 -- 127
short 2个字节 -32767 -- 32768
int 4个字节 -2147483648 -- 2147483647 默认是 int类型的数据
long 8个字节
小数类型
float 4个字节
double 8个字节
字符类型
char 2个字节 0-65535
布尔类型
boolean 1个字节
引用数据类型
数组 类 接口
字节:字节是我们存储数据的基本单位
5.4.2 变量的定义
/*
变量的定义:
1.格式:
数据类型 变量名
int a;
double b;
2.赋值:
a = 10;
b = 3.14
3.一般把变量定义和赋值写在一起
格式:
数据类型 变量名 = 值;
变量定义的注意事项:
1.变量名不允许重复定义
2.一条语句可以定义多个变量,变量之间要使用逗号隔开
3.变量在使用之前一定要进行赋值
4.定义float变量 赋值的时候,数据后面要加f或者F 推荐使用F
5.小数默认是double类型
6.定义long变量 赋值的时候,数据后面要加l或者L 推荐使用L
7.变量的作用域范围,在他所在的大括号中
*/
public class Demo03{
public static void main(String[]args){
//数据类型 变量名
int a;
double b;
//赋值:
a = 10;
b = 3.14;
//数据类型 变量名 = 值;
int c = 100;
//变量名不允许重复定义
//long a = 300;
System.out.println(a);
int d=200,e,f,g;
//变量在使用之前一定要进行赋值
System.out.println(d);
//定义float变量 赋值的时候,数据后面要加f或者F 推荐使用F
float h = 5.20f;
System.out.println(h);
//定义long变量 赋值的时候,数据后面要加l或者L 推荐使用L
long i = 21474836470L;
System.out.println(i);
//变量的作用域范围,在他所在的大括号中,出了大括号就失效了
{
System.out.println(a);
int j = 1000;
System.out.println(j);
}
//System.out.println(j);
}
}
5.5 标识符
5.5.1 标识符的定义和作用
标识符:就是一组符号,包含java规定的数字,字母,下划线_,美元符号$
作用:
用来定义类名 方法名 变量名 等起名字的符号
注意事项:
不能以数字开头
不能是关键字
区分大小写
5.5.2 驼峰命名法
1.小驼峰命名法:方法、变量
规范1:标识符是一个单词的时候,首字母小写
范例1:name
规范2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
范例2:firstName
2.大驼峰命名法:类
规范1:标识符是一个单词的时候,首字母大写
范例1: Student
规范2:标识符由多个单词组成的时候,每个单词的首字母大写
范例2: GoodStudent
public class Demo04{
public static void main(String[]args)
//变量的命名符合标识符的小驼峰命名规范
String name = "张三";
String firstName = "三";
String lastName = "张";
}
}
//类的命名符合标识符的大驼峰规范
class Student{}
class GoodStudent{}
六、开发工具idea的安装
mac电脑安装软件:
1.创建空java项目
2.在项目下创建模块
3.在模块下创建类
4.在类中写代码
删除模块不会从硬盘上删除,只会移出当前项目,如果要向删除模块,要直接从硬盘删除
导入模块:file菜单 ==> new ==> model from existing sources ==>在=弹出框中导入