java 开发环境配置 及java的三个版本
三个版本 JAVAME \JAVASE \JAVAEE
JAVVAME :嵌入式开发(手机\小家电…)
JAVASE: 标准版(桌面程序,控制台开发…)
JAVAEE: E企业级开发(web端,服务器开发…)
JDK\JRE\JVM
JDK
JDK: Java Development Kit
java 开发者工具, 包括JRE 和 JVM
还包括: java \ javac \ javadoc \ jar
java :运行
javac: 编译工具
javadoc: 可以变异成文档
jar: 可以打包发布
JRE: Java Runtime Environment :java运行时环境
包含JVM
JVM: Java Virtual Machine
java虚拟机,跨平台的保证, 两种运行方式: 编译型, 解释型
JAVA开发环境搭建
卸载
安装JDK
notepad++下载
Hello World
JAVA程序运行机制编译型和解释型
编译型 compile
编译器:编译成JVM 认识的语言
解释型
解释器:解释成计算机可运行的语言
java基础知识
01注释
java中注释有三种:
//注释
/*多行注释*/
/**
*@Description HelloWorld
*
*
*
*文档注释*/
02 标识符
关键字
03数据类型
变量
什么是字节
04:数据类型拓展及面试题讲解
05类型准换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换.
//强制类型转换会导致内存溢出问题
int i = 128;
byte b = (byte)i; // - 128 byte 最大是127
//1.不能对布尔值进行转换
//2. 不能把兑现队形转换为不相干的类型;
//3. 在把高荣朗转换到底容量的时候,强制转换
//4. 转换得时候可能存在内存溢出或者精度问题!
06: 变量,常量,作用域
变量
作用域
类变量
实例变量
局部变量
public class Test01 {
//类变量
static String a = “”;
//实例变量 ,从属于对象:如果不进行初始化, 这个类型的会有自己的默认值
//布尔值: 默认是false;
//除了 基本类型,其余数据类型都是null
String s1 ;
public static void main(String[] args) {
//局部变量, 必须先声明在使用, 并且得初始化值;
int i =10 ;
}
}
常量
变量命名规范
07:基本运算符
算数运算符 关系运算符 逻辑运算符 位运算符 扩展赋值运算符 条件运算符 赋值运算符
+:加 >:大于 &&:与 &:与 +=:加等于 ? =
-:减 <:小于 ||:或者 |: 或 -=:减等于
*:乘 >=:大于等于 !:非 ^:异或 *=:乘等于
/:除 <=:小于等于 ~:取反 /=:除等于
%:取余 ==:等于 <<:左移 *2
++:自加 !=:不等于 >>:右移 /2
–:自减 instanceof:是否属于某一个类型 >>>
关于位运算符的介绍
/*
* A = 0011 1100
* B = 0000 1101
* -----------------------
* A&B = 0000 1100 两1则1
* A|B = 0011 1101 有1则1
* A^B = 0011 0001 两个位置相同则为0 ,不同则为1
* ~B = 1111 0010 为0 则 1 为1 则零
* --------------------------------------------
* 面试题
* 2*8 = 16怎么样做才能最快
* 2*8 = 16 = 2*2*2*2
* << 左移 *2
* >> 右移 /2
*
* 0000 0000 ->0
* 0000 0001 ->1
* 0000 0010 ->2
* 0000 0011 ->3
* 0000 0100 ->4
* 0000 1000 ->8
* 0001 0000 ->16
* */
08:自增自减运算符,初始math 类
Math类 :提供很多科学运算方法
09:逻辑运算符,位运算符
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b" + (a&&b));// 有假则假 false
System.out.println("a || b" + (a||b));//有真则真 true
System.out.println("!a && b" + !(a&&b));//若果为真就是假 true
}
10:三元运算符|算木运算符
public static void main(String[] args) {
int a = 10;
int b = 20;
a += b; //a =a+b
System.out.println(a);//30
int c = 20;
int d = 10;
c -= d; //c = c-d
System.out.println(c);//10
int e = 10;
int f = 20;
//字符串拼接 字符串在前面,拼接 , 字符串在后面先进行运算;
System.out.println("" + e+f);//1020
System.out.println(e+f+"" );//30
//三元运算符
// x?y y:z 如果结果为真则输出y ,否则则输出z
int score = 60;
String type = score < 60 ? "不及格":"及格";
System.out.println(type);//及格
}
运算符的优先级 ()优先
11:java中的包机制
package pkg1[.pkg2.pkg3.....];
//卸载代码第一行
import com.xunxun.project
//写在包名下面
import com.xunxun.* 导入到xunxun下面所有的包类
12:javaDOC 生成文档
@author 作者名
@version 版本号
@sine 知名需要 最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
javadoc -encoding UTF-8 setencoding UTF-8 类名
13:java流程控制01:用户交互Scanner 类
Scanner s = new Scanner(System.in);
Scanner对象
next()
nextLine():
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“请录入字符串!”);
if(scanner.hasNext()){
String s = scanner.next(); // hello o o o
System.out.println(“录入的字符串为:”+s); //录入的字符串为:hell
}
//关闭资源节省空间
scanner.close();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“请录入字符串!”);
if (scanner.hasNext()) {
String s1 = scanner.nextLine(); //rwerewr rwer
System.out.println(“录入的字符串为:”+s1); //rwerewr rwer
}
//关闭资源节省空间
scanner.close();
}
public static void main(String[] args) {
Scanner scnner = new Scanner(System.in);
System.out.println(“请录入字符串!”);
String s = scnner.nextLine(); //gfg gfd
System.out.println(“录入的字符串是:”+s); //gfg gfd
scnner.close();
}
14:Scanner 类的进阶使用
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//判断是否为整数
System.out.println("请输入一个整数");
if (scanner.hasNextInt()) {
int i = scanner.nextInt();
System.out.println("你录入的整数位:" + i);
} else {
System.out.println("你录入的不是整数");
}
System.out.println("请输入一个小数");
//判断是否为小数
if (scanner.hasNextFloat()) {
float v = scanner.nextFloat();
System.out.println("你输入的小数为:" + v);
} else {
System.out.println("你输入的不是一个小数");
}
//关闭资源
scanner.close();
}
public static void main(String[] args) {
//我们可以输入多个数字,并求和与平均值,每输入一个数字按回车确认,通过输入非数字来结束输入King输出执行结果
Scanner scanner = new Scanner(System.in);
// 定义基准数;
int sum = 0;
// 定义计步器;
int num = 0;
System.out.println("请录入整数以便求和");
while(scanner.hasNextInt()){
System.out.println("请录入第"+(num+1)+"整数");
int i = scanner.nextInt();
System.out.println("你输入的整数是"+i);
num++;
sum+=i;
System.out.println("和是"+sum);
}
//关闭资源节省空间
scanner.close();
}
15:流程控制,顺序结构
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行.
顺序结构是最简单的算法结构;
语句与语句之间,框与框之间是按从上到下的顺序进行的,他是有若干个一次执行的处理步骤组成的, 他是任何一个算法都离不开的一种基本算法结构.
public static void main(String[] args) {
System.out.println(“00001”);
System.out.println(“00002”);
System.out.println(“00003”);
System.out.println(“00004”);
System.out.println(“00005”);
}
16java流程控制 : if选择结构
if选择结构
if 但选择结构
if 双选择结构
if(布尔类型){
//如果为true 则执行
}else{
//否则的话就位false此处语法执行
}
if 多选择结构
嵌套的if结构
语法也性对简单,比较容易理解
if(表达式1){
if(表达式2){
}else{
}
}else{
}
每个if语句最好跟一个else 提高程序的可读性
17:jiava流程控制switch 多选择结构
如果没有break 就会造成case穿透, 如果匹配到一个值相同,那么下面的语句也将输出,
default: 如果之前的都没有匹配到,那么会出处default 部分
18,循环结构
while 循环
do . . while 循环
do {
//输出语句
}while(布尔表达式);
for 循环
在java5 中引入了一种主要用于数组的增强for循环
19 break continue
20 java中的方法
什么是方法
//修饰符 返回类型 方法名 (参数列表)
public static int add(int a, int b){
//返回值
return a+b;
}
方法的定义及调用
方法的重载
命令行传参
可变参数
递归
21 数组
数组的概述
数组声明创建
三种初始化
数组的四个基本特点:
数组使用
Arragys 类
冒泡排序
public static void main(String[] args) throws InterruptedException {
int[] array = {2, 4, 7, 3, 1, 7457, 32, 11, 754, 321, 523};
int[] sort = sort(array); ///[1, 2, 3, 4, 7, 7457, 32, 11, 754, 321, 523]
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array) throws InterruptedException {
int temp = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-i; j++) {
if (array[j] > array[i]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
稀疏数组
当一个数组中大部分元素为0,或者为同一个值的数组是,可以使用稀疏数组来保存该数组
稀疏数组的处理方式是:
如下图:左面是原始数组,右面是稀疏数组;
public static void main(String[] args) {
/**
* 首先创建一个二维数组.类似于五子棋棋盘 我们用 0 代表空格 用 1 代表黑子, 用 2 代表白子 长宽 为11行 11列
*/
int[][] array = new int[11][11];
array[1][2] = 1;
array[2][3] = 2;
for (int[] ints : array) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
System.out.println("=================================");
//将原来的数组压缩为稀疏数组
//获取原来数组的有效值的个数
int count = 0 ;
for (int i = 0; i