目录
(JetBrains: Essential tools for software developers and teams)
一、java简介
Java语言是美国Sun公司(stanford University Network),在1995年推出的高级编程语言。所谓编程语言是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。
詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
1.2 java特点
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、跨平台与可移植性、多线程、动态性等特点。
单核心 单线程 多核心 多线程。(微秒级)
windows,mac,linux,unix .apk .ipa
面向对象三大特征 :封装,继承,多态
java面向对象: 封装,继承,多态,抽象,接口
面向对象与面向过程的简单举例
需求:我想吃番茄炒蛋!
1.自己做
2.去餐厅
面向过程: 自己做
1.买食材
2.处理食材
3.起锅烧油
面向对象: 去餐厅,老板,来份番茄炒蛋!
1.3 java开发方向
1.3.1 JavaSE
Java Standard Edition PC方向 桌面应用
1.3.2 JavaEE
Java Enterprise Edition 可扩展的企业级应用Java平台 服务器项目 网页
爱奇艺 打开网页
1.3.3 JavaME
Java Micro Edition用于嵌入式Java平台;移动设备应用
1.4 Java语言能做什么?
java语言可以编写桌面应用程序(类似于电脑QQ,但是java不擅长)、Web应用程序(服务器程序)、分布式系统和嵌入式系统应用程序等。人工智能。python(黄金语言) 。
主要应用在web程序的开发领域,常见的互联网应用比如天猫,京东,物流系统,网银系统等,以及服务器后台处理大数据的存储,查询,数据挖掘等也有很多应用。
二、Java开发环境组成 (jdk)
2.1 jvm虚拟机
-
JVM 是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
(模拟器 安卓模拟器 夜神) .exe .apk .ipa
-
跨平台 任何软件的运行都需要运行在操作系统上,而我们使用Java编写的软件可以运行在任何的操作系统上,这个特性成为java语言的跨平台性。这个特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Windows OS MacOS Linux OS
不同的操作系统,内部的运行原理是不一样,换句话说,windows的软件不能在mac电脑上面进行安装。所以我们很多软件的制作成本就加大了。例如 爱奇艺,需要制作windows版 还需要制作mac版。此时就需要两个开发团队。假如你是老板,急需一种操作:能不能开发一个版本在不同的平台中都能运行,这就是跨平台。
Java是支持跨平台操作的一门语言。
-
2.2 JRE
Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由SUN微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。
2.3 jdk
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具(类似于电工的工具包钳子,螺丝刀,欧姆表 )jdk中自带有jre。
2.4jdk的安装
(JetBrains: Essential tools for software developers and teams)
各种开发软件官网
约定:
0. 以后任何安装路径都不要有中文路径
1. 以后我们的软件统一装到某个盘的某个文件夹中 E:\app
2. 我们安装完成之后 又弹出一个框 这是提示我们安装jre,Jdk安装完成之后 已经有jre了 所以 这个地方取消安装
3. 安装完成jdk之后 在jdk文件夹中
Bin 这里面是java的执行文件
Include 这里面导入c和c++的一些代码
Jre java的运行环境
Lib 资源库
4. 配置jdk的环境变量(可以理解成告诉你的电脑 我们安装了jdk 我们要开发java 并且 jdk安装到哪了)
2.5环境变量的配置(不行就去百度)
1.JAVA_HOME
JAVA_HOME
自己jdk安装路径
2.CLASS_PATH
CLASS_PATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
3.Path
Path
%JAVA_HOME%\bin
配置完环境变量后,黑窗口中测试是否配置完成
window+R 打开命令行模式,输入cmd 将目录切换到 java文件所保存的目录
javac 测试是否能编译
java 测试是否能运行
三、HelloWorld入门程序
3.1代码运行的三个步骤:
编写 编译 运行
javac.exe :编译器 javac 编译命令
java.exe :解释器 java 运行命令
3.2 使用idea工具编写代码
1.创建项目
2.创建包(类似于文件夹)
不同模块的代码可能有相同的名字。使用包来分割/存储不同的功能的代码。
包的命名规范:
特点:全小写,点分隔,反域名。
3.创建类
3.3 java 注释
文档注释写在类的上边 /** */
多行注释,写在方法上边 /* */
单行注释方法里边。 //
3.4 关键字
是指在java中有特殊含义的,被保留的,不能随意使用的字符
特点:会识别 全小写 有颜色
3.5 标识符
3.5.1、标识符
定义:java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
理解为:凡是自己可以起名字的地方都叫标识符
3.5.2、标识符的命名规则
-
由26个英文字母大小写,0~9,_或$组成
-
数字不可以开头
-
不可以使用关键字和保留字,但能包含关键字和保留字
-
java中严格区分大小写,长度无限制
-
标识符不能包含空格
3.5.3、java中的名称命名规范
包名:多个单词组成时所有字母都是小写:xxxyyyzzz 类名、接口名:多个单词组成时,所有单词的首字母大小:XxxYyyZzz 变量名、方法名:多个单词组成时,第一个单词首字母小写,第二个单词开始每个每个单词的首字母大小:xxxYyyZzz 常量名:所有字母都大写,多单词时,各个单词之间用下划线连接:XXX_YYY_ZZZ
四.常量
4.1 概述
常量:是指在java程序运行期间固定不变的数据
4.2 分类
类型 | 含义 | 数据类型 |
---|---|---|
整数常量 | 所有的整数 | 0,1,567,-9 |
浮点数常量 | 所有的小数 | 0.0,-0.1,3.55 |
字符常量 | 单引号引起来,只能写一个字符,必须有内容 | 'a' , ' ' , '好' |
字符串常量 | 双引号引起来,可以写多个字符,也可以不写 | "A", "Hello" , "你好" ,"" |
布尔常量 | 只有两个值,流程控制语句中使用 | true, false |
空常量 | 只有一个值(引用数据类型讲解)没有任何数据 | null |
常量命名:全大写+下划线字母命名
五.变量和数据类型
5.1 变量
1.概述:程序中可以改变的量称为变量,内存中最小的存储单元
为什么用变量?间接的思想,间接的越多,证明程序越优秀!
数学中可以使用字母代替数字的方式运算,例如x=1+5或者6=x+5;程序中也是一样是的,相当于一个容器,内部可以存储数据。Java中要求一个变量每次只能保存一个数据,必须明确保存的数据类型。
定义变量的格式:
数据类型 变量名 ;
变量名=值;
int a;
a = 10;
数据类型 变量名 =值;
int b = 20;
public class Demo02 {
public static void main(String[] args) {
//年龄
int age; //定义一个int类型的变量
age = 10;//给age赋值在内存中开辟一块内存空间 起名为age 并且这块内存空间中只能存储int类型的数据
//int a,b,c;//同时定义多个变量
int a=10,b=8,c=9; //定义变量的同时,初始化
System.out.println(age);
}
}
注意:
-
变量必须初始化后才能使用
-
不能有同名变量
-
在该个类型的变量中只能存储该类型的数据。
-
可以同时定义多个变量并赋值(但是,不推荐使用!)
5.2 数据类型
声明:数据类型 变量名 = 初始值;
背住:
基本数据类型:
5.2.1整数类型变量
-
整型类变量用来存储整数数值,即没有小数部分的值
-
整数类型分四种不同的类型:
字节型(byte)、短整型(short)、整型(int)默认、长整型(long)
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte
1Byte = 8 bit 比特
int是默认类型。
byte 一个8位二进制数 01011010
反编译。
** 如果想使用long 必须在数据的后边 加一个 L 后缀
5.2.2浮点类型
浮点类型分为两种:单精度浮点(float)、双精度浮点(double)
double型所表示的浮点数比float型更精确;浮点数的默认类型为double类型。
小数默认double 如果非要用float 必须加上 F 的后缀
注意事项:
1.字符串是引用数据类型
2.浮点型可能只是一个近似值,并非精确的值
3.数据范围与字节数不一定相关,
例如float 数据范围比long更加广泛,但是float是4字节,long是8字节
4.浮点数默认double类型,如果一定要使用float类型,需要加上一个后缀 F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L表示long类型。
后缀推荐使用大写字母。
5.2.3 字符类型
字符类型变量用于存储一个单一字符,Java中用char表示。
Java中,每个char类型的字符变量都会占用2个字节,16位。
char类型的变量赋值时,需要英文的单引号’’把字符括起来,如’a’。
char类型的变量赋值范围是0~65535内的整数。 unicode码表 == utf-8
5.2.4 Boolean
布尔类型变量用来存储布尔值,在Java中用boolean表示,boolean类型的变量只有两个值,即true和false,默认值为false。每个boolean占8位。
变量使用时的注意事项:
1.如果创建多个变量,那么变量之间的名称不可以重复。
2.对于float和long类型来说,字母后缀F和L不能丢掉。
3.变量右侧的数据值不能超过左侧类型的范围。
4.变量一定要赋值*(初始化)后才能使用。不赋值不能直接使用。
5.变量的使用不能超出作用域的范围。
作用域: 从定义变量的一行开始,一直到直接所属的大括号结束为止。
6.可以通过一个语句来创建多个变量,但是不推荐使用。
六.运算符
6.1算术运算符:
+(字符串拼接运算) - * / % ++ --
其中 ++ --
1.如果直接使用,前置++跟后置++没有区别
2.如果用于 赋值 前置++是先自增后运算,后置++则是先运算后自增 --同理;
6.2关系(比较)运算符:
== >= <= > < !=;
==:
1.如果是基本数据类型比较值。
2.如果是引用数据类型 比较的内存的地址值!
比较结果一定是一个boolean值,true/false,如果是连续判断不能连着写。
6.3逻辑运算符:
只能使用boolean值,条件可以连续写
&&(并且) 所有条件全都满足才是true,否则false
||(或者) 至少有一个是true就是true否则false
! (取反) 直接相反的结果
6.4赋值运算符:
=, += , -=, *= ,%= ,/=
注:复合赋值运算符会隐含强制类型转换。
short s1 = 23;
s1 = s1 + 1;
其中1是int型变量,如果不加类型转换会报错,编译不通过
若要实现赋值效果
要写为
s1 =(short)(s1 + 1);
6.5条件运算符:
? : 三目表达式
格式:数据类型 变量名称 = 条件判断 ?表达式A : 表达式B;
*(表达式A和表达式B 要同时符合左侧的数据类型)
流程:首先判断条件是否成立
如果成立 表达式A
如果不成立 表达式B
注 :一元,二元,三元 元就代表需要一个数据
可以嵌套使用
嵌套格式:表达式1?a :(表达式2?b:c)
优先级
() ++ -- 》 算术运算符 --》关系运算符--》逻辑运算符--》赋值运算符--》条件运算符