1.JRE、JDK、JVM区别与联系
JVM(Java Virtual Machine) :Java 虚拟机。运行.class文件。
JRE (Java Runtime Environment):Java 运行时的环境。包含了JVM+基础类库。
JDK (Java Development Kit):Java 开发工具包。包含JRE+开发工具。javac.exe(编译.java源文件至.class字节码文件)、java.exe(运行.class字节码文件)等。
JDK | |||||
|
开发工具 |
2.常用dos指令
盘符名称: :盘符切换
dir :查看所有文件
cd 目录1\目录2 :进入指定目录
cd .. :退回到上一级目录
cd \ :退回到盘符目录
md :创建目录
rd :删除目录(注意:目录下面必须是空的才能删除掉)
del : 删除文件(注意:如果后面指定的是目录,则会把目录下的所有文件删
除掉,不会删除这个目录)
cls:清屏
exit : 退出DOS 命令行
3.配置环境变量
开发工具在jdk安装目录路的bin目录下
在系统变量中新建JAVA_HOME指向目录jdk
在path中加入%JAVA_HOME%\bin
之后就可以进入cmd直接在系统目录下使用javac
4.数据类型
基本数据类型:关键字=>内存占用
整数:byte=>1(-128-127)、short=>2、int=>4(默认)、long=>8
浮点数:float=>4、double=>8(默认)
字符:char=>2
布尔:boolean=>1
引用数据类型:
类(class)、接口(interface)、数组([ ])
5.变量
定义long类型时,后面加L。默认int(小=>大,整数过大)
定义float类型时,后面加F。默认double(大=>小,损失数据)
6.标识符
数字、字母、下划线、美元符组成
不以数字开头
区分大小写
不为关键字
7.类型转换
自动:小=>大
byte => short => int => long => float => double
char => int
强制:大=>小
(小类型)
8.算数运算符
字符的+操作:char,不可定义为空""
算数表达式中包含多个基本数据类型时,整个表达式的类型自动提升,例如:‘A’+10=75,注意定义时应赋值给高类型的变量。
特别的:当byte、char、short做运算时,结果为int。
字符串的+操作:string,可定义为空""
从左到右,顺序执行,表示连接。
9.赋值运算符
+=:隐含强制类型转换
10.逻辑运算符
&:逻辑与
&&:短路与(从左到右,不全部运算)
|:逻辑或
||:短路或(从左到右,不全部运算)
^:逻辑异或
!:逻辑同或
11.位运算符
>>2:右移2位,除2的平方
<<2:左移2位,乘2的平方
比直接乘*除/高效
&:按位与
|:按位或
^:按位异或
!:按位同或
12.三元运算符
关系表达式?表达式1:表达式2;
比if-else简洁,效率高
13.进制
二进制:0b
八进制:0
十六进制:0x
14.流程控制
分支结构:
if{}
if{}else{}
if{}else if{}else{}
swith(表达式){case 常量1:语句1;break;default:语句;}
swith(表达式){case 常量1:case 常量2:case 常量3:语句1;break;default:语句;}
循环结构:
for/while/do-while
break; continue;
label:for{for{break label;}}//结束标签层的循环
15.编码
命令行使用ANSI:中文环境GBK
eclipse使用UTF-8:针对Unicode的可变长度字符编码
16.数组
引用数据类型,需要new开辟空间,初始化后确定长度范围。
一维数组:
int[] a;//声明
a=new int[]{1,2,3,4};//静态初始化 ,初始化与赋值同时进行
string[] b=new string[5];//动态初始化,初始化与赋值分开进行
b[0]="";
a.length//长度
二维数组:数组元素是数组。
int[][] a=new int[][]{{1,2,3},{4,5},{6,7,8}}//静态初始化
string[][] b=new string[3][2];//动态初始化1
string[][] c=new string[3][];//动态初始化2
c[1]=new string[4];
基本数据类型默认值是(整型、字符型)0/(浮点型)0.0/(布尔型)false
引用数据类型(string)默认值是null
17.数组常用算法
赋值(a=b,地址)、复制、反转(head,end)
线性查找、二分查找
选择排序:直接选择排序、堆排序
交换排序:冒泡排序(O(n2))、快速排序(O(nlog2n))2x=n,x=log2n
插入排序:直接插入排序、折半插入排序、希尔排序
归并排序
桶式排序
基数排序
18.Arrays工具
boolean equals(int[] a,int[] b)判断两数组是否相等
String toString(int[] a)输出数组信息
void fill(int[] a,int val)将指定数值填入数组
void sort(int[] a)排序
int binarySearch(int[] a,int key)二分搜索
19.数组常见异常
下标越界异常ArrayIndexOutOfBoundsException
空指针异常NullPointerException
原文:https://www.cnblogs.com/frezxx/p/13530315.html