JAVA语言基础

本文详细介绍了Java语言的基础知识,包括开发工具包(JDK)的配置、语言运行原理、注释方式、变量使用、数据类型、类型转换等内容。此外还讲解了算术、关系和逻辑运算符、控制结构如循环与分支语句,以及数组和方法的概念。

1:
JAVA开发工具包— jdk
JAVA开发工具:编译器,调试器,javadoc等。
JAVA 运行环境:jre.
运行环境中包括{1:jvm(java虚拟机)
2:类库}
2:
JAVA语言运行原理:
java源文件(.java)
|
编译过程(javac.exe)
|
java字节码文件(.class)
|
开启虚拟机,运行字节码文件
|
程序开始运行
3:
配置jdk
(1) 新建一个环境变量名为:
JAVA_HOME
变量值:D:\Users\Michael\Apps\Java\jdk1.8.0_172
(2) 新建一个环境变量名为:
CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
(3) 找到系统变量里的path: 追加值。
追加的内容如下:
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
配置完成后检查是否配置成功:
在命令提示界面输入
java-version
javac
无错误提示既可以。
4:
三种注释方式:
文档注释:/* /
多行注释:/* */
单行注释://
变量的命名及使用:
由字母,数字,—,和$组成,开头不能是数字。
大小写敏感。
可以使用汉字。
驼峰命名法
不使用java程序中的关键字。
在使用过程中:
必须先定义及初始化。
可以重复使用,但类型必须保持一致。
变量有自己的作用域,超出作用域必须重新定义及其初始化才能继续使用。
进入命令提示界面:
要按照创建文件的路径进行访问,否则找不到文件所在位置,运行失败。
运行成功即产生.class文件,运行失败一定不会产生.class文件。
java语言的两种类型:
1:基本数据类型:byte,short,int,long,double.float,char,boolean
2:引用数据类型;
1字节8位二进制;
byte:
占8位二进制空间,范围:-2^7~2^7-1;
short:
占16位二进制空间,范围:-2^15~2^15-1;
int:
占32位二进制空间,范围:-2^31~2^31-1;
long:
占64位二进制空间,范围;-2^63~2^63-1
float:
占32位二进制空间,范围:-3.403E38~3.403E38;float类型要在数值后面+F\f;
double:
占64位二进制空间,范围:-1.79E308~1.79E308;

范围从大到小排序:
double>float>long>int>short>byte;
精度从大到小:
long>int>double>float;
char:
占16位二进制空间,
赋值用法:必须有且只有一个字符;字符必须用单引号引起来;
范围:0~65535;
可以存储整数,和字符之间相对应的转换;
java常用字符:
A-Z:65-90;
a-z:97-122;
0-9:48-57;
特殊字符:”\”(反斜线) “\t”(制表符) “\r”(换行符:有翻页效果,看不到上一页数据) “\n”(回车符)
boolean:
只有两个值:true false 用来判断条件是否成立;
类型转换:
1:自动转换(隐式转换)内存小的类型转换成内存大的类型;
2:强制转换:内存大的类型转换为内存小的类型;精度可能出现损失;
String:
两原一封;
1:不同类型数据之间转换要将内存小的数据类型转换成内存大的数据类型然后在进行运算;
2:byte,short,char运算时,要先转换成int数据类型然后再进行运算;
3:一定要是封闭式运算;
算术运算符:
+,-,*,/,%,++,–;
++,–是自增自减符,运算方法为:符号在前,先运算再赋值;符号在后,先赋值再运算;
被除数为正,取余结果一定为正;
被除数为负,取余结果一定为负;
关系运算符:

,>=,<,<=,==,!=;
判断条件是否成立,一般在分支或者循环结构中使用;
逻辑运算符:
&&,||,!;
用于判断两个或者两个以上条件是否同时成立,有一个成立,没有条件成立;
&&:同真则真,一假则假;
||:一真则真,全假则假;
!:不是真的就是假的,不是假的就是真的;
赋值运算符:
=,+=,-=,*=,/=,%=;
字符串拼接符号:
+ 只要有一个是字符串类型,就做字符串拼接,结果为字符串类型;
三目运算符:
格式为:变量类型 变量 = 条件表达式 ? 值1:值2
成立结果为值1,不成立结果为:值2;

程序的运行顺序:
顺序结构 : 自上而下到程序结束;
分支结构:根据条件成立与否进行方向选择执行;
循环结构:多次执行相同的语句直至条件不成立输出结果;
分支结构语句分为:if语句:如果条件成立执行语句 继续执行以下语句,如果不成立执行后面的语句直至输出结果;
if-else语句 :执行条件语句,如果条件成立执行对应的语句,如果不成立执行else语句然后继续向下执行直至输出;
if-else-if语句 :执行条件语句,如果条件成立执行相应语句,如果条件不成立,执行else-if语句然后继续执行程序语句 直至输出;
switch-case 语句
执行switch语句条件case后有相应的数值,并有相对应的输出,根据switch条件的结果输出相对应的case值所对应的输出语句并分别输出;
case后的值要与()内的类型相同;
break使程序中断,跳出并输出结果;

引用类型:
Math和Scanner类;
Math是数学类,功能为随机产生数值:Math.random()随机产生【0,1)区间内的任意浮点数;
double num = Math.random();

Scanner:是开启键盘输入的类型:可以扫描键盘输入的整数,浮点数,布尔类型,字符串类型。
使用步骤:
导包—新建对象—使用功能
导包:import java.util.Scanner;
新建对象:Scanner.scan = new Scanner(System.in);
使用功能:键盘输入类型+num = scan.next+键盘输入类型();
字符串类型:next后面可以加Line也可以不加;
循环语句:
while循环语句:
一定执行条件语句,如果条件成立,执行循环体,如果条件不成立则执行后续代码,直至输出;
do-while循环语句:
先执行循环体,然后判断条件语句。如果条件成立,在执行一次循环体,如果条件不成立,结束循环体,执行后续语句;直至输出;
while/do-while/for区别:
知道循环次数 用for循环;
不知道循环次数用while/do-while循环;
while/for先判断条件;
do-while先执行循环体再判断条件 ;
while和do-while使用区别据题意翻译成相应英语即可;

数组:相同类型数据的组合,也是一种引用数据类型;数组创建后长度不可变;
数组名称:存放的数据类型+[];
元素:数组中的每个数据都是数组的元素;
数组的声明和初始化:
元素类型 [] 变量名;
初始化可以先声明再初始化,也可以声明时初始化;
初始化分为静态初始化和动态初始化;
静态初始化 :数组数据类型 [] 变量名 = {};
动态初始化 :如果规定数组长度:数组数据类型 []变量名 = new 数据类型[length];
默认元素:
int :0;
double/float:0.0;
char:’\u0000’;
boolean:false;
引用数据类型:null;
不规定长度:数据类型 [] 变量名 = new 数据类型[] {};
数组长度:数组中元素的个数;变量名.length;
数组下标:
范围:0~length-1;
数组元素访问:
通过下标访问:变量名[index];
元素遍历语句:
for(int i = 0;i<变量名.length;i++){
System.out.println(变量名[i]);
}
数组元素的替换:
变量名.[index] = 想要替换的数值;
通过变量对数组元素进行修改,相应的变量所对应的数组元素也会发生改变;
命令提示界面出现java.lang.ArrayIndexOutOfBoundsException表明数组下标越界异常;由于访问元素时下标超出范围所致;
引用数据类型Arrays:
数组的工具类,将元素拼接成字符串的方法为:Arrays.toString(数组名);
数组的复制:
系统复制的方法:System.arraycopy(原始数组,开始复制的的一个元素的下标,生成的数组,赋值过来后的第一个元素的下标,复制的长度);
工具类复制法:
元素类型 [] 变量名 = Arrays.copyOf(原始数组,新数组长度);
数组元素的排序:
冒泡排序:相邻两个数作比较,较大的数向右移动,然后依次比较两个相邻的数,较大的向右移动直至排序完成;
简单排序:在元素中选出最大的数,与第一个位置进行交换,再在剩下的元素中找最大的数与第二个进行交换,以此类推直至最后一个与倒数第二个交换完成;
工具类Arrays排序方法:Arrays.sort(数组名);基本数据类型和引用数据类型都可以排序;
二维数组:数组的元素依然是数组称为二维数组;
二维数组的初始化:
数组类型 [] 变量名 = {}; 静态初始化;
动态初始化:
等长初始化:
数组类型 [] 变量名 = new 数组类型 [3][2];
只规定高维数组的长度:
数组类型 [] 变量名 = new 数组类型 [3][];
数组有3个元素但都是null,如果使用null需要重新创建新数组对象;
方法:
语法:修饰词 返回值类型 方法名(形式参数){
代码
}
在类体中和main方法并列 可以有多个
修饰词:public protected private;
不写 修饰词默认为:default;
static可以与三个修饰词连用;
返回值类型:
有void无返回值;
也可以是基本数据类型和引用数据类型;
方法名:和变量的命名方法相同;
形式参数:
接受传入的数据;与变量的声明相同;
return;
结束方法;返回给调用者的数据,类型和方法类型一致;
调用方法时:
无返回值时 : 方法名(有参数传参数)
有返回值时: 返回值类型 变量 = 方法名 (有参数传参数);
Java开发工具:
eclipse;
引用数据类型称为对象存放在堆里;
引用类型的变量存放在栈里;
引用类型的变量存放的不是对象而是对象在堆里的位置信息;
基本数据类型的数据 不是对象;
基本数据类型的变量存储的是基本类型的数据;

面向对象:
结构化程序是设计:面向过程的程序设计;主要侧重于思考问题和解决问题的思路;
面向对象程序设计:从事物的基本特点,抽象出解决问题所需要的类作为程序的基本单元;
类是含有同一事物的共同特征;
类可以产生多个对象,从而构成了程序中的数据;
Field:成员变量,
类的做拥有:封装事物的状态数据,提供状态数据的方法,实现逻辑;
成员变量(状态数据) + 方法(行为)定义 = 类的定义;
面向对象需要进行对象的实例化;
抽象数据类型:用一堆不同类型的状态数据来描述一种新的事物;
用状态数据(成员变量)总结一类事物的共同特征;
用方法总结一类事物的共同行为;
类的定义 = 成员变量+方法;
语法格式:修饰词 class 类名{
type filed1;
type filed2;
……..
修饰词 返回值类型 methood1(形参){};
修饰词 返回值类型 methood2 (形参){};
}
创建对象: 类名 引用变量 = new 类名 ();
引用变量存储对象的地址信息;
成员变量的调用:引用.成员变量名
方法的调用:引用.方法名(有参传参);
类与对象的关系:类是对象的模板,对象是类的实例化;
jvm将内存分为三大主要区域:方法区,堆,栈;
方法区作用是程序运行时将.class文件加载到方法区;
堆用域存储产生的对象,对象有成员变量,会给成员变量分配存储空间;
栈:方法内的变量是在栈中开辟的;
传递方式:1:值传递 2:址传递;
空指针异常:
java.lang.NullPointerException;
引用类型的默认值:null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值