介绍java :
java语言(☆):
java是一门语言, 汉语 英语都是语言,但是这些语言是人和人交流的语言, java是人和计算机交流的语言, java c c# c++ python …
1995年 高司令 创造java
java的三个方向:
javaSE:方向 是用来做 桌面应用程序 qq 迅雷...
另外JavaSE 还是 java的其他所有方向的基础。
JavaME:方向 做一些嵌入式的应用。
由ME进化出来的另一个方向 Android 这个 是有人做的。
JavaEE :方向 做一些 大型web服务器。
淘宝服务器 京东服务器。
大数据方向: 底层也是用java去开发的。
java的优点(☆☆):
面向对象语言。
开源
跨平台
平台--操作系统 意思就是你编写的程序可以在任意的操作系统上去运行。
跨平台 不但方便了用户 ,用户不需要选择性的去下载对应操作系统的文件了, 同时 开发人员也提高了开发效率。
jdk 和 jre 和jvm的关系(☆☆☆):
jdk
开发工具 : 编译工具 javac.exe jar.exe javawar.exe javadoc.exe
jre :
jvm :java虚拟机 内存 解析之类的一些信息。
核心类库 : String System
jdk下载和安装(☆):
1:jdk的安装版本 视频里面要求 安装jdk12 你安装的只要是jdk8 以后的就可以了。
2:一个电脑上 可以安装 很多个版本的jdk,只要安装目录不同就可以了。
至于你以后java程序使用哪个一个jdk, 你只需要环境变量配置哪一个就行了。
3:以后只要安装 开发类的软件 ,安装路径里面尽量不要有中文和空格。
HelloWorld程序
dos 命令(☆☆☆):
d: 切换盘符
cd: 切换文件夹 c change 切换 d dir directory 目录
dir : 展示目录下的 直接目录结构
除了根目录, 其他的目录下面 都会有额外的两个目录
. 代表的是当前文件夹
.. 代表的是上一层文件夹。
所以 你 cd.. 进入上一层文件夹。
操作系统的底层 根目录 叫做 \ 目录。
linux操作系统中 有明确的体现。
cd \ 回退到根目录。
cls
exit
tree 树
c盘下 使用tree命令他就把 c盘所有的内容以树形结构展示出来。
环境变量(☆☆☆☆☆):
为什么配置环境变量: 不仅可以在bin目录下使用javac 和java命令 我还想在任意的其他目录都可以使用这两个命令。
命令: 就是exe 后缀结尾的 这样的文件 我们就可以称为命令。
配置环境变量:如果你想让某个命令(.exe结尾的 都算是命令) 在任意的目录下都可以使用的话, 你只需要 把这个命令所在的目录 放到path里面就可以了。
但是我们又不想频繁的改动path,所以我们可以给 以后可能会变动的jdk目录 起一个名字, 在path中引用这个名字就可以了,这就是所谓的JAVA_HOME
因为每次使用的命令的时候 电脑总是会从path里面的路径从前往后去找,所以我们为了提高电脑的寻找效率,可以把 jdk的目录 放在最上面就可以了。
HelloWorld程序的编写编译和运行(☆☆☆☆☆):
编写:
新建一个txt文件, 然后后缀改为.java ,此处注意 操作系统尽量不要隐藏文件拓展名,否则无法更改拓展名。
public class Demo { // 这个代码 定义一个类 类名字 叫做 Demo
public static void main(String[] args){ // main方法 程序的入口 args arguments
System.out.println("helloworld"); // 打印输出语句
System.out.println("helloworld1"); // 打印输出语句 每写一行 多输出一行。
}
}
注意:文件名字 和 class 后的名字 要一致。
编译: javac Demo.java
编译成功的标志是 生成一个class文件。
注意: 你需要先用cmd进入到 Demo.java的目录 才可以编译,否则找不到Demo.java
运行: java Demo
注意:运行的是class文件,但是不需要 加.class
HelloWorld的详解(☆☆☆):
public class Demo { // Demo 类名 必须和文件名相同。 不加public的情况下 是可以不同的。 但是 一般我们开发的时候 都要求 类名和文件名相同
public static void main(String[] args){ // 程序入口 args 可以改 你想什么都可以 args arguments 参数
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
}
}
代码的书写(☆☆☆):
语法:空格是一个语法, java中单词之间用空格隔开。
书写程序的 约定俗称的规范:(没有这个语法,但是大家都这么写,如果你不安装这个规则写 也不会报错 但是 其他程序员会给你一个大大的中指)
当你遇到一个{的时候 换行,并且搓一个tab键。
遇到; 换行, 和上一行对齐就可以了。 不需要搓tab
}必须和对应的{的那一行的行首对齐。
运行乱码的问题(☆☆):
你打开一个cmd 默认编码 是用的你计算机的本地编码(ANSI)(GBK)
你在win10操作系统中 你新建一个txt 默认的编码是UTF-8编码
不一致。所以乱码了。
所以如果你使用记事本新建一个文件 需要另存为ANSI编码
如果我们使用notepad++来新建一个文件 则需要设置 notepad++的新建选项 ANSI
java语法(☆☆☆☆☆):
程序的基本组成:
注释 (☆☆☆☆):(非必须的) 解释说明性文字
// 单行注释
/*
一行
两行
三行
....
*/
/* 多行注释里面我只写一行 你管得着我吗? 你来啊 */
/**
文档注释 和多行注释的作用一样 也是可以写多行的
但是 文档注释还有一个不为人知的作用。
是制作帮助文档的时候 要使用的。
*/
public class Demo { // Demo 类名 必须和文件名相同。 不加public的情况下 是可以不同的。 但是 一般我们开发的时候 都要求 类名和文件名相同
public static void main(String[] args){ // 程序入口 args 可以改 你想什么都可以 args arguments 参数
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
}
}
关键字(☆☆☆☆☆) :java给一些英文单词 规定了特殊的含义 这些就是关键字。
public :公共的
class : 类 class后面紧挨着的是类名字
static :静态的。
void :方法没有返回值的。
数据(☆☆☆☆☆) :
常量(☆☆☆☆☆):
public class Demo {
public static void main(String[] args){
//字符串常量
System.out.println(""); // 没有内容
System.out.println("adfkasd黑马jfkasdjlk");
System.out.println("a");
//字符常量
//System.out.println(''); //报错。
//System.out.println('ab'); //报错。
System.out.println('中');
System.out.println('*');
//整数常量
System.out.println(10);
//小数常量
System.out.println(10.14);
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量 用来占位。
//System.out.println(null); // 报错
}
}
// 数据 数据
// 张三我给你10块钱 你去给我买1根冰糕。
// 标识符 关键字 符号
变量(☆☆☆☆☆):
// 张三我给你我的钱包 你去给我买1根冰糕。
定义格式: 数据类型 变量名 = 常量值;
// 数据类型 表示的是 “钱包” 有多大
// 变量名 钱包名
// 常量值 钱
数据类型: 每种数据类型由一个关键字来表示。
bit 和 byte 的由来
bit 比特位 , 计算机是由电路板组成, 电路板里面 上亿个电阻和电容(晶体管)组成。 交流电通过电阻的时候 高电压 高电平 记为1表示
当交流电通过电容的时候 低电压 低电平 0来表示。 每个一个电平 我们就叫做位 比特位 bit
一个bit 只能表示0 或者1
计算机只能存储 0 或者1 其他的都不能存储。
但是现实生活中的事物千千万万 计算机如果只能表示0和1 那也没有计算机的什么事情了。
计算机以 8个位为一组 表示计算机的最小存储单元 byte 字节。
0000 0000 --256种变化。
数据类型:
基本类型
整型
byte 1个字节 -128 127
short 2个字节 -32768 32767
int 4个字节 21亿左右
long 8个字节 .....
浮点型
float 4个
double 8个
布尔型
boolean 1个
字符型
char 2个
引用类型
数组 []
类 class
接口 interface
数据类型表述数据范围的 大小排序
byte < short = char < int < long < float < double
代码演示:
class Demo {
public static void main(String[] args){
//数据类型 变量名 = 数据值;
int a =10;
System.out.println(a); //10
byte b = 10;
System.out.println(b); //10
double d = 3.14;
// int c = 3.14; // 报错。
System.out.println(d); // 3.14
//int e = true; //报错。
boolean e = true;
System.out.println(e); // true
char f = 'a';
System.out.println(f); //a
}
}
注意事项:
1:同一个范围内 不允许定义相同名字的变量
class Demo {
public static void main(String[] args){
int a = 10;
System.out.println(a); //10
a = 20; // 正确的 此时 你并没有重新定义a 而是在使用之前的定义的a
System.out.println(a);
int a = 30; //编译报错
System.out.println(a);
}
}
2:变量一条语句定义多个。
class Demo {
public static void main(String[] args){
int a = 10 , b = 20, c = 30;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
3:变量可以分开定义
class Demo {
public static void main(String[] args){
int a ;
a = 10; //正确的
int b,c,d;
b = 20;
c = 30;
d = 40;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
int e,f,g = 50;
System.out.println(e); //编译报错
System.out.println(f); //编译报错
System.out.println(g); //50
}
}
4: 变量使用之前必须先赋值, 没有值不能使用
class Demo {
public static void main(String[] args){
int b; //正确的。 你不使用 那你有没有值就无所谓了。
int a ;
System.out.println(a); //编译报错
}
}
5:变量的作用域只在当前大括号内有效。
class Demo {
public static void main(String[] args){
/*
{
int a = 10;
System.out.println(a); // 10
}
System.out.println(a); //编译报错。
*/
/*
{
int a= 10;
}
int a = 20; //正确的。
System.out.println(a); //20
*/
/*
int a = 10;
{
System.out.println(a); //正确
}
*/
int a = 10;
{
int a = 20; //编译报错
System.out.println(a);
}
}
}
6: float 类型数据后面加F long类型后面加L
class Demo {
public static void main(String[] args){
float f = 1.2F;
long lo = 100L;
}
}
标识符 (☆☆☆☆☆):所有的名字都叫做标识符。
语法规定:
1:a到zA到Z0到9 $_
2:不能是关键字。
3:不能以数字开头
//int asdfasdfasdfasd = 10;
int 10 = 100;
约定俗成的习惯:
大驼峰 : 类 Demo HelloWorld
小驼峰 : 变量 方法 a b getStudent
峡谷先锋 : 常量名 JAVA_HOME
HelloWorld案例程序里面的标识符:
public class Demo { // Demo 类名 必须和文件名相同。 不加public的情况下 是可以不同的。 但是 一般我们开发的时候 都要求 类名和文件名相同
public static void main(String[] args){ // 程序入口 args 可以改 你想什么都可以 args arguments 参数
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
System.out.println("helloworld"); // 打印语句
int a = 10;
System.out.println(a);
}
}
Demo 类名
main 方法名
String jre的核心类库里面提供的一个类 String就是这个类的名字
args 变量名
System jre的核心类库里面提供的一个类 System就是这个类的名字
out 变量名 System类里面的一个变量名
println 方法名 out里面的一个方法名
a 变量名
符号(☆☆☆☆☆)
基本符号
空格 每个单词用空格隔开。
{} 用来表示范围的 里面可以写多条语句
; 一个分号是一条语句。
"" 字符串
''字符
() 用在四个地方
强制类型转换
运算中
结构语句
方法的定义和调用
[] 数组
. 指挥自己的东西
运算符号
赋值运算符
=