前言:
为什么要写一下java基础的内容呢,主要是为了让初学JAVA的朋友们通过这些知识点,可以对JAVA基础知识做一个回顾,做一个总结,忘记哪些知识点可以回头看一下,记一下。还有就是对我自己基础知识的一个巩固。虽然我早就学完了这一些,而且掌握的也不错,但我想通过现在累计下来的知识,再来回过头看看一些内容,看着现在我对这些东西的接收程度,理解程度,同时也非常希望能帮助初学JAVA的朋友们!!!
目录
Java简介:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
1.Java语言的发展历史(了解)
Java语言的发展历史分为以下几个阶段:
1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器
1994年将Oak语言更名为Java
1998年JDK1.2时,更名为Java 2 Platform
分为标准版J2SE,企业版J2EE,微型版J2ME
Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题
Internet使Java成为网上最流行的编程语言
Java对Internet的影响也意义深远
B/S的兴起 & C/S的没落
2.什么是Java语言?
Java是1995年美国sun公司发布的高级语言
Java是一种既面向对象又跨平台的语言
3.JDK:Java开发工具包
JRE:Java的运行环境
JVM:Java的虚拟机
JDK = {JRE(JVM+环境信息) +运行时类库信息}+编译器等开发工具
4.JDK的bin目录下的主要工具
javac:对Java的源程序进行编译,编译时需要带上后缀名,如:javac Hello.java
java:用于执行Java字节码的解释器,不需要带后缀名,如 java Hello
javadoc:编译帮助文档,如 javadoc Hello.java
😆😆😆😆😆😆😆😆要能说的上来😆😆😆😆😆😆😆😆
5.Java的执行过程
(这里就给一个图吧,了解过,看一眼就会明白的)
6.创建Java源文件
-
新建一个文本文档,填写文档名称,并将后缀名改为.java。如Hello.java
-
使用文本编辑器打开Hello.java,编写程序
-
使用javac命令编译源文件
-
使用Java命令执行文件
注:class修饰类,类名需要与文件名称一致 public class Hello { //main函数:公开的静态的无返回值的函数 public static void main(String[] args){ //输出 System.out.println("祝大家五一玩的开心!"); } }
7.java的注释
/* */多行注释
//单行注释
/** */Java的文档注释
8.垃圾回收机制
JVM虚拟机会自动回收垃圾(这就是java的优势了)
😆😆😆😆😆😆😆😆重点,一定要会😆😆😆😆😆😆😆😆
9.环境变量配置
(D盘为例)
1. 右键我的电脑->属性->高级->系统环境->新建变量
JAVA_HOME = D:\Program Files\Java\jdk1.8.0_66(安装的jdk地址)
2.右键我的电脑->属性->高级->系统环境->path->设置
PATH 变量值:D:\Program Files\Java\jdk1.8.0_66\bin;(在最前面)
或 %JAVA_HOME%\bin”
(注意:如果系统变量已有PATH项,点编辑进行输入,两个路径之间用英文分号隔开)
!3. 新建变量,设置CLASSPATH(变量名):===================== 不是必须配置的===============
.;D:\Program Files\Java\jdk1.6.0_10\lib\dt.jar;D:\Program Files\Java\jdk1.6.0_10\lib\tools.jar(变量值)
或 “.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”(使用JAVA_HOME替换)
4. 测试打开命令行 java -version 输入版本号正确
javac 输出选项正确
😆😆😆😆😆😆😆😆接下来就是比较重要的,一定要按照约定写😆😆😆😆😆😆😆😆
10.标识符和关键字
10.1 标识符
标识符是程序员对程序中的各个元素命名时使用的命令记号
在Java语言中使用标识符为变量,方法,类,对象等命名
10.2 标识符的命名规则
- 必须以字母或_,$开头
- 后面跟字母,数字,下划线或$
- 标识符区分大小写,没有长度限制
- 关键字不能作为标识符
- 标识符中不能包含空格
- 尽量做到“见名知义”
合法:school,middle_sch,$abc,age123,_name
不合法:567abc,class,school#,hell world
10.3关键字
Java语言中有特殊意义的单词
关键字一般都小写
关键字不能用作标识符
10.4 Java中的名称规范
1)包名:所有的单词字母小写 xxx.yyy.zzz
2)类,接口名称:所有的单词首字母大写,采用驼峰式命名规则 XxxYyy
3)变量和方法(函数)名称:第一个单词的首字母小写,其他单词的首字母大写 xxxYyyZzz
4)常量:全部大写,多个单词之间用下划线连接 XXX_YYY_ZZZ
😆😆😆😆😆😆😆😆这些类型再往后写代码用的非常多😆😆😆😆😆😆😆😆
11.数据类型
11.1数据类型时程序设计语言描述事物,对象的方法
数据类型分为:简单数据类型(内置类型)和扩展数据类型(复合数据类型)
简单数据类型:是Java本身提供的基本数据类型
扩展数据类型:是Java语言根据基本数据类型扩展的其他类型
11.2 简单数据类型
- 整型
byte,short,int(最基本),long - 浮点类型
float,double(默认) - 字符类型
char - 布尔类型
boolean
11.3 复合数据类型:数组,类,集合
- Array
- Class
- List
12.变量和常量
😆😆😆😆😆😆😆😆基本类型详细介绍😆😆😆😆😆😆😆😆
12.1 变量
-
程序运行中其值可以改变的量叫变量
-
变量使用来存储数据的将计算简化
-
定义变量的方式
1) 定义时直接赋值
数据类型 变量名称 = 变量值;
int a = 9;
2)先定义,后赋值
数据类型 变量名称;
变量名称 = 变量值; -
整型
表示整数,可以是负数,但是不能有小数
byte,short,int,lang,默认是int型
整型数据的三种表示方式:
十进制:直接表示
八进制:0~7,以0开头
十六进制:0~9,A-F(a-f),以0x或0X开头 -
浮点类型:float,double(默认)
double表示的精度比float更精确。float类型的常量数值后添加一个F(f),如果没有默认是double -
char类型:2字节,使用单引号括起来的任意字符
它在机器中占16位,范围0-65535
char可以存储中文,一个汉字占2字节 -
boolean类型:判断失误真假的数据类型
只有两个值true和false,这两个值不能与整型(0或1)进行相互转化
12.2 常量:程序运行中其值不可以改变的量叫常量
定义的语法:
final 数据类型 常量名称 = 常量值;
关键字final表示这个变量只能被赋值一次,一旦被赋值后,就不能改变其值,常量一般大写
13.数据类转换
分为自动类型转换和强制类型转换
低级(位)类型可直接转换为高级数据类型的值,称为自动类转换
高级数据类型转为为低级数据类型,称为强制类型转换
低位类型是值取值范围小的类型,反之就是高位类型
1.自动类型转换
char(2)
|
byte(1)--->short(2)--->int(4)--->float(4)--->long(8)--->double(8)
注意:
1.字符串和任意类型的数据进行"+"连接,结果都是字符串类型
2.多种数据类型参与运算,结果以表达式中的高位类型为准
2.强制类型换行
语法:(需要转换到的数据类型)变量或值;
注意:强制类型转换的值得数据类型超出了目标类型的表示范围,就会被转成一个完全不同的值
😆😆😆😆😆😆😆😆在运算中必不可少,重点😆😆😆😆😆😆😆😆
14.运算符
1.算术运算符:
/: 整数除0有异常,浮点类型无异常
%: 实型可以取余
前++:先参加1,再参与运算
后++:先参与运算,再加1
前--:先参减1,再参与运算
后--: 先参与运算,再减1
结合性:结合起来呀要注意
2.比较运算符
==: 可以比较两个对象
3.逻辑运算符
&&(断路与): 表达式1 && 表达式2
如果表达式1为true,则继续判断表达式2,都为true时结果为true
如果表达式1为false,则不在执行表达式2,整个结果为false
&(非断路与): 表达式1 & 表达式2
如果表达式1为true,则继续判断表达式2,都为true时结果为true
如果表达式1为false,则继续执行表达式2,整个结果为false
||(断路或): 表达式1 || 表达式2
如果表达式1为true,则不在判断表达式2,整个结果为true
如果表达式1为false,则继续表达式2,当表达式2位false时,整个结果为false
|(非断路或): 表达式1 | 表达式2
如果表达式1为true,则继续判断表达式2,整个结果为true
如果表达式1为false,则继续执行表达式2,当表达式2位false时,整个结果为false;否则为true
^(异或): true ^ false = true
!(取反):真假相对
4.条件运算(三目运算符)
条件表达式1 ?条件表达式2 :条件表达式3
当条条件表达式1的结果为真时,返回条件表达式2的结果,否则返回条件表达式3的结果
5.赋值运算符
6.运算符的优先级
口诀:单目乘除为(位移)关系,逻辑三目后赋值
15.流程控制语句
选择结构:
if
if-else
if-else if --else
嵌套if
注:if条件表达式的结果只能是boolean类型
switch-case:
switch(表达式)
{
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
...
break;
case 值n:
执行语句n;
break;
default:
break;
}
注:
1.表达式的返回值类型必须是以下类型:int,byte,short,char
2.case子句中的值必须是常量,且值应该不同的
3.break用来在执行一个匹配的case分支后,跳出switch语句,终止switch语句的执行
4.default是可选的,当以上常量值都无法匹配时,才会执行default子句
5.JDK1.7及其以上表达式可以是String类型
16. 循环结构
while:先判断后执行,最少一次都不执行
while(条件表达式)
{
//语句
}
do-while:先执行后判断,最少执行一次
do{
//语句
}while(条件表达式);
for:用于循环次数已知的情况
for(初始表达式; 条件表达式; 更新循环变量){
//语句
}
注:
1、省略初始表达式 ,在外部做初始化
2、省略条件表达式或更新循环变量,会出现死循环
3、省略3个表达式,会出现死循环
4、分号不能省略
😆😆😆😆😆😆😆😆数组也很重要,可以单独写一遍了,为了带着大家学习(复习的话)就总结下面几个小点吧,就不详细写了😆😆😆😆😆😆😆😆
17.数组
-
数组概念
-
数组的分类(二维数组、三维数组)
-
数组的定义方式
-
数组的属性
-
访问数组的方法
-
增强for循环
语法: for(数据类型 临时变量名称:数组名称) { //输出 }
-
数组的类型
-
数组反转
-
数组复制
-
二维数组
-
将数组转换为字符串
-
数组排序(例:简单排序、冒泡排序…等等)
-
查找数组中的元素
总结:JAVA前期的上手的确有一定的难度,在面向对象这一块很容易把新手绕晕(下一篇就是面向对象的知识点了)。但是JAVA的基础部分也是尤其重要的,也希望大家重视一点。有句话:先苦后甜。只有掌握了这些基础知识,后面灵活的运用起来,学习效率就会有显著的提升。看见别人成为了大神,远远的看着,透漏出羡慕的表情,其实你也能做到,最重要的还是兴趣,也希望大家能好好学习!,快乐学习(如果你真的喜欢编程的话)。
下一篇:
加油!冲鸭!奥利给!!!