Java基础总结
重点:
①.环境变量配置set classpath=.; +class文件所在目录
②.运行java命令启动虚拟机执行class文件,附加参数 -d +指定目录
可在指定目录生成class文件
③.细节:javac编译javac命令可以编译任何目录下的文件 只需要路径写对了 (绝对路径 相对路径)
java命令 启动虚拟机,虚拟机会在classpath环境变量配置的目录中去寻找 .class 文件。目录为空时,
会默认加一个点“.”表示在当前目录查找,设置其他目录的话不要把这个点删掉
day02
Java基础语法:
1:关键字:(1)在java语言中被赋予了特殊含义的单词
(2)特点:所有关键字全部小写.
2:标识符:**包 (其实就是文件夹) ***全部小写.域名反写com.baidu.www
**类或者接口***如果是由多个单词组成,每个单词的数字母大写. 举例:HelloWrold
**变量或者方法***如果是由多个单词组成,从第二个单词开始,每个单词的首字母大写. 举例:studentAge
**常量***如果是由多个单词组成,每个单词大写,并且用_连接. 举例: STUDENT_AGE
3.注释: (1)分类:单行 //多行 /* */文档 /** */
(2)用途:**解释说明代码的**提高代码的可读性 **调试程序
4.常量: (1)在程序的运行过程中,其值不可改变的量叫常量.
(2)分类**整数常量 **小数常量 **字符常量 **字符串常量 **布尔常量**null常量
5.变量: (1)基本格式 数据类型 变量名 = 初始化值;
(2)变量可以在某一个范围内变化. 它是用于存储数据的一个区域. 该区域可以重复使用.
6.数据类型: (1)java是强数据类型的语言.
(2)java的数据类型:基本数据类型,引用数据类型(类,接口,数组)
(3)基本数据类型 4类8种
**整数
***byte 占1个字节
***short 占2个字节
***int 占4个字节
***long 占8个字节 其后要用L或者l标识
**浮点数
***float 占4个字节 其后要用F或者f标识
***double 占8个字节
**字符
***char 占两个字节
**布尔
***boolean 占1个字节
注意:
整型数据默认是int类型
浮点型数据默认是double类型
7.数据类型的转换:java中的转换有两种
**自动转换:***byte,short,char->int->long->float->double
***byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型
**强制转换:容量大的数据类型转换为容量小的数据类型时,要加上强制转换符, (int)(i + j)
但可能造成精度降低或溢出;使用时要格外注意。
8.运算符 :& | ^ ! &&||>><< >>>掌握他们的优先级
案例:
1.最有效率的方式算出2乘以8等于几? 2<<3
2.对两个整数变量的值进行互换(不需要第三方变量) a = a^b; b= a^b;a = a^b;
day03
程序的流程控制:
①.if...else...的使用 判断奇偶数
②.switch语句 接收参数必须为int(char、byte、short) 每个case后面要有break
③.while循环语句 实现1~100的累加 会在while中使用break
④.for循环语句 实现1~100的累加,除了3和7的倍数 continue语句的使用 ,两层for循环
⑤.函数:
函数在java中被称作方法
方法必须有的三样: 方法名 参数列表 返回值类型
return语句的作用: 返回一个值 结束方法
方法的重载
day04
数组:
1. 基本操作:
int[] arr = new int[10];
int[] arr = {1,2,3,4}; // 只能用于变量定义的同时进行赋值 的情况
arr = new int[]{1,2,3,4}; // 对于给某个定义好的变量赋值时必须使用这样的方式
2. 数组的使用:
获得数组的元素个数 通过length属性 例如:arr.length
3. 案例:
交换数组的两个元素
找出数组的最大数出现的位置
二分法查找!!
遍历数组输出元素
数组的排序:
选择排序
冒泡排序!!
插入排序
快速排序
数组(选择排序,冒泡排序,位置置换功能抽取)
<span style="font-family:SimSun;font-size:14px;">1.import java.util.*;
2.
3./*
4.对给定数组进行排序。
5.{5,1,6,4,2,8,9}
6.
7.
8.*/
9.class ArrayTest2 {
10.
11. /*
12. 选择排序。
13. 内循环结束一次,最值出现头角标位置上。
14. */
15. public static void selectSort(int[] arr) {
16. for (int x = 0; x < arr.length - 1; x++) {
17. for (int y = x + 1; y < arr.length; y++) {
18. if (arr[x] > arr[y]) {
19. /*
20. int temp = arr[x];
21. arr[x] = arr[y];
22. arr[y]= temp;
23. */
24. swap(arr, x, y);
25. }
26. }
27. }
28. }
29. /*
30. 冒泡排序
31. */
32.
33. public static void bubbleSort(int[] arr) {
34. for (int x = 0; x < arr.length - 1; x++) {
35. for (int y = 0; y < arr.length - x - 1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
36. {
37. if (arr[y] < arr[y + 1]) {
38. /*
39. int temp = arr[y];
40. arr[y] = arr[y+1];
41. arr[y+1] = temp;
42. */
43. swap(arr, y, y + 1);
44. }
45. }
46. }
47. }
48.
49. /*
50. 发现无论什么排序。都需要对满足条件的元素进行位置置换。
51. 所以可以把这部分相同的代码提取出来,单独封装成一个函数。
52. */
53. public static void swap(int[] arr, int a, int b) {
54. int temp = arr[a];
55. arr[a] = arr[b];
56. arr[b] = temp;
57. }
58.
59. public static void main(String[] args) {
60. int[] arr = {5, 1, 6, 4, 2, 8, 9};
61. //排序前;
62. printArray(arr);
63.
64. //排序
65. //selectSort(arr);
66. //bubbleSort(arr);
67.
68. //Arrays.sort(arr);//java中已经定义好的一种排序方式。开发中,对数组排序。要使用该句代码。
69. //排序后:
70. printArray(arr);
71.
72. }
73.
74. public static void printArray(int[] arr) {
75. System.out.print("[");
76. for (int x = 0; x < arr.length; x++) {
77. if (x != arr.length - 1)
78. System.out.print(arr[x] + ", ");
79. else
80. System.out.println(arr[x] + "]");
81.
82. }
83. }
84.}
</span>
Java基础回顾:
①.方法的递归调用:实现十进制转二进制,求1~n的和
②.二维数组的定义,赋值,遍历输出
③.用位移实现十进制转十六进制