- java发展史
- java语言:半解释半编译型语言
- 操作系统基本操作
- Java的八大特点
- Java环境的搭建
- 安装Java步骤
- JavaSE,JavaEE,JavaME的区别
- 简单创建一个程序:
- JDK、JRE、JVM含义
- Java的要求
- Java基础
- 类(class)
- 注释
- 关键字
- 数据类型
- 变量
- 精度
- 数据类型转换
- 自动类型转换
- 强制类型转换
- 运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
- char的特殊性
- 二进制存储单位
- 思维导图
Java是在1991年由SUN公司的James Gosling(Java之父-詹姆斯高斯林)及其团队所研发的一种编程语言,第一个版本耗时18个月,最开始命名为Oak(一种橡树)。Java现在广泛应用于各种大型互联网应用,其设计的最初动机主要是平台独立(即体系结构中立)语言的需要,可以嵌入到各种消费类电子设备(家用电器等),但市场反应不佳。
随着1990年代互联网的发展,SUN公司看到了Oak在互联网上的应用场景,在1995年更名为Java(印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名),随着互联网的崛起,Java逐渐称为重要的Web应用开发语言。Java的发展可以主要看JavaWeb的发展,Java也见证了互联网的发展过程。
发展至今,Java不仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系,Java 是几乎所有类型的网络应用程序的基础,也是开发和提供嵌入式和移动应用程序、游戏、基于 Web 的内容和企业软件的全球标准。
从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在!
java语言:半解释半编译型语言操作系统基本操作解释:语言。JS。浏览器可以直接运行JS,不需要翻译
编译:Java,Scala。.java文件是我们程序员写的,是以十进制为单位写的文件,计算机只认二进制。我们所编写的.Java文件,计算机是不认识的,我们需要有一个翻译把我们写的java文件翻译给计算机听。
基本命令:
| 打开指令控制台 | win+r |
|---|---|
| 直接切换到目标的盘 | 输入盘符:盘名+: |
| 返回上一级目录 | cd … |
| 进入指定目录 | cd 目录名 |
| 查看当前目录的文件信息 | dir |
| 创建一个空文件(空文件名为a.txt) | copy nul a.txt |
| 向文件里写入内容 | echo 内容>a.txt |
| 复制文件 | copy 被复制的文件 新建的文件名 |
| 删除文件(不走回收站) | del 文件名 |
Java环境的搭建 安装Java步骤1.面向对象
2.跨平台/可移植性:平台就是操作系统,用JAVA写的软件可以在任意操作系统上运行的。
3.简单性:就是C++语法的简化版,我们也可以称为"c+±"。指的就是把C++的一些内容去掉。
4.解释执行(高性能):计算机执行的是.class,解释执行.class。
5.多线程:多个任务同时进行。能更好的进行交互相应和实时行为。
6.分布式:Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),
7.健壮性:强数据类型的语言。有异常处理和垃圾回收机制。Java程序不可能造成计算机崩溃。即使Java程序有错误。
8.安全性:插件设置一个安全防范机制。
(1)下载JDK:JAVA下载官网
(2)安装JDK:打开下载的JDK压缩包,一直next就行,但是注意安装路径,配置环境变量是需要用到,一般是>>>>C:Program FilesJavajdk-11.0.15<<<<
(3)配置环境变量:
1.计算机-右键-属性-高级系统设置-环境变量-系统变量上新建JAVA_HOME(C:Program FilesJavajdk-11.0.15)
2.找到原来就存在的Path,双击打开,新建一行:安装jdk安装路径(C:Program FilesJavajdk-11.0.15bin)
3.常用指令:java javac,javap,java -version,java -jar。>>>在cmd中输入,用来测试是否安装成功JDK
简单创建一个程序:javaSE:早期做桌面应用程序,现在就是JAVA基础
javaEE:企业级应用。要学习的
javaME:手机端,淘汰。
1.创建一个.java文件(填写以下内容):
public class hello{ //类名 public 访问权限修饰符 class类 +类名
public static void main(String [] args){ //主方法,程序运行
System.out.println(“hello world”);//打印输出,相当于console.log();
}
}
注:类名必须和建的.java文件名一样。
2.通过cmd指令控制台,找到这个JAVA文件
3.java文件是我们写的,计算机不认识,所以我们需要翻译(编译)
用java c指令操作hello.java之后会创建了一个hello.class—–这个.class文件计算机能看懂。说明.class文件是一个二进制文件,把我们写的.java文件以二进制形式转换成为.class文件。.class文件又叫做字节码文件
4.执行.class文件: java hello
总结一下:通过javac hello.java把他编译成了.class,系统去解释执行了这个hello.class
那么到底是谁做的这些事呢?
JDK、JRE、JVM含义 在我们去配置环境变量的时候,实际上相当于在系统上搭建了一台虚拟机。
JDK:java Development Kit ————–java开发工具包
JRE:java Runtime Environment —–java运行环境
JVM:java Virtual Machine ————-java虚拟机
如果只需要运行,不需要开发,可以只安装JRE
JDK包括JRE,JDK10之前有单独JRE,从JDK10以后没有单独的JRE的。
1.Java严格区分大小写;
2.写代码的时候,一行代码要么有;结尾,要么有{}结尾,什么时候
3.所有的符号都是英文状态下。
4.代码提示,一定要注意看代码提示,如果写的东西没有提示,多半是错误的。(在idea下)
什么是类?
类是Java开发中的一个最小的单位,一个Java开发的项目是由一堆的类组成的。
类名的命名规则:
在开发中,只要是可以命名的东西—标识符。
(1)只能有字母,数字,下划线,美元符号组成,数字不能开头。
(2)不建议使用$号,下划线尽量不要开头(能不用就不用)。
(3)推荐使用字母+数字,大部分都是使用字母(英文单词)。
(4)驼峰式命名:如果这个类名由多个单词组成,每个单词的首字母大写。(eg:stuNo)
关键字1.单行注释:// 快捷:CTRL+/
2.多行注释: 快捷:/**回车
三种注释都可以调试代码。
数据类型官方的解释:这个字有他独一无二的作用。
关键字不能用来命名。
关键字都是小写的。
总共有48个关键字、2个保留字、3个特殊直接量。
保留字:goto const.//现在没什么意义但是跟关键字有一样的功能。
基本数据类型:四类八种(都是关键字)
1.整型
| 数据类型 | 所占位数 | 范围 |
|---|---|---|
| byte—字节型 | 1个字节=8位 | 2^-7 ~ 2^7-1 |
| short–短整型 | 2个字节=16位 | 2^-15 ~ 2^15-1 |
| int-----整型 | 4个字节=32位 | 2^-31 ~ 2^31-1 |
| long—长整型 | 8个字节=64位 | 2^-63 ~ 2^63-1 |
使用长整型时需要在值得后面加上一个L或l;这里推荐写L。小写的看不清。
2.浮点型
| 数据类型 | 所占位数 | 范围 |
|---|---|---|
| float----单精度浮点型 | 4个字节=32位 | 1.4e-45~3.4e38 |
| double–双精度浮点型 | 8个字节=64位 | 4.9e-324~1.8e308 |
使用单精度时后面需要添加f或F,默认是F。
3.字符型
| 数据类型 | 所占位数 |
|---|---|
| char—字符型 | 2字节=16位 |
字符型需要添加单引号,并且引号中只能放一个
4.布尔型
| 数据类型 | 所占位数 | 值 |
|---|---|---|
| boolean----布尔型 | 1个字节=8位 | true 或 false |
引用输入类型
1.类
2.接口
3.数组
目的:
1.定义变量:为了后期的维护,重复利用;
2.减少使用字面量。
须知:
精度如果在程序中看见了一个整数的字面量,没有任何数据类型声明的话,它默认是int
如果在程序中看见了一个小数的字面量,没有任何数据类型声明的话,它默认是double
JAVA中的除法,如果两个整数相除,结果一定是整数
整数和整数做运算,得到的一定是整数。
数据类型转换 自动类型转换整型:4种整数类型,精度是和位数挂钩的,位数越大,精度越高。
浮点型:double的精度比float要高。
浮点型和整型比的时候,浮点型就比整型高。
低精度的和高精度的做运算,得到的一定是高精度数据类型的结果。
为什么int类型的数据给byte给不了?答:大给小,小的装不下。
(自动类型提升)低精度–>高精度
强制类型转换高精度–>低精度。如果平白无故的想把低精度转到高精度,也得是强转。
如果浮点型转到整型,没有四舍五入,直接抹掉小数点后面的。
byte a=127; a=(byte)(a-1);//强制类型转换 byte c=(byte)(a+1); System.out.println(a); System.out.println(c); double d=1.9; int x=(int)d; System.out.println(x); int i1=10; int i2=20; System.out.println((double)i1 / i2);
输出结果:126 127 1 0.5运算符 算术运算符
无论a++,还是++a,他的本意都是让a自增。
a++:表示先附值后运算。
++a:表示先运算后附值。
a–,–a也一样,但是没有a**,a//。
附体一道:
int a=10; System.out.println(a++ + ++a + a++ + a);
赋值运算符输出结果:47
+= -= *= /= %=
从计算结果来看,a+=1 —–>a=a+1
附值运算符可以进行数据类型的转换,包括a++也可以。
byte b=127;
b++;//虽然不报错但是
System.out.println(b);
b+=1;
System.out.println(b);
比较运算符输出结果:-128 -127
< > >= <= == !=
相较于JS而言没有===(三等),因为Java已经比过了。
double x=10.0; int y=10; System.out.println(x == y);
逻辑运算符输出结果:true
与&& 或|| 非! 异或^
与----只有当所有条件都为true,整体结果才是true。如果有一个为false,则整体即为false
双与–当发现条件中,只要有一个false,就停止判断。(效率高)
单与–无论有多少个false,所有条件都判断。
或—只有当所有条件都为false,整体结果才是false。如果有一个为true,则整体即为true
单双或同单双与
非—取反
异或–条件结果一样为假,条件结果有不一样的,就是真的。
附加:
<>>----左移/右移
<<>>>-----无符号右移/左移(将运算符左边的对象向右/左指定的位数。采用0的扩展机制。)
int z=10; int v=20; System.out.println(z > 5 && v < 66); System.out.println(z < 5 || v < 66); System.out.println(!(v<66)); System.out.println(z ^ v); System.out.println(z | v); System.out.println(z << 3); System.out.println(z >>> 3);
输出结果:
三元运算符true
true
false
30
30
80
1
要求:2个表达式的运行结果的数据类型是相同或可以自动转换成相同的。
int p=10;
double q=20;
double mm=p > q ? p : q;//用double 不是因为q是double,而是double的精度最高,无论是int,还是double,都可以自己提升高度。
System.out.println(mm);
char的特殊性输出结果:20.0
//映射表ASCII码
//字符型abcdefg…每一个字符在计算机保存时都是以ASC码的形式保存的。
//char类型是16位,short是一样的,可以自动转换成int,long,float,
//当char自动转换成数值类型,会对应着ascii码去转换
//把整数类型转换成char类型,会对应着ascii码去转换
//由于char类型有这样的特殊性,所以开发中金浪不适用char
//+连接符功能
char l='l';
int k=l;
System.out.println(l);
System.out.println(k);
二进制存储单位输出结果:l
108
思维导图1bit=1位
1byte=8bit
1KB=1024b
1MB=1024K
1GB=1024M
1TB=1024G
1PB=1024T



