Java基础
java中有三种方式向控制台输入信息,分别是print,printf,println,现在简单介绍一下他们之间的异同。
- printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
- print就是一般的标准输出,但是不换行
- println和print基本没什么差别,就是最后会换行
class 类 Demo名字(javac 运行后 生成以此为名称.class文件) (驼峰式)
public static void main(String[] args) 主函数固定写法 只有需要类运行时才需要主函数 不需要类运行可以不写主函数 一个类只能有一个主函数
/** 作者 版本 */文档注释
//这是第一个小程序 (单行注释) /* */多行注释
一个文件可以写多个类 运行后生成 多个 .class文件
/**
作者:张三
版本:V1.0
这个类是用于演示hello world。
*/
class Demo //这是我的第一个java小程序,//很爽!
{
/*
main函数可以保证该的独立运行。
它是程序的入口。
它会被JVM所调用。
*/
public static void main(String[] args)
{
System.out.println("hello java") //System S要大写
System.out.println("hello world");
}
}
/*
思路:
1,
2,
步骤:
1,通过class关键字定义一个类。将代码都编写到该类中。
2,为了保证该的独立运行。在类中定义个主函数。格式public static void main(String[] args)
3,保存成一个扩展名为java的文件。
4,在dos控制台中通过javac工具对java文件进行编译。
5,在通过java命令对生成的class文件进行执行。
*/
注意 字符单引号 字符串双引号
注意
long = 4l
小数默认为double float = 2.3f 后面的f是设置为float 单精度
循环
函数
数组
选择排序(先找最小(大)值 换位(最值位和当前位) 下一位依次循环 )
public class SelectionSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { int[] arr = Arrays.copyOf(sourceArray, sourceArray.length); // 总共要经过 N-1 轮比较 for (int i = 0; i < arr.length - 1; i++) { int min = i; // 每轮需要比较的次数 N-i for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[min]) { // 记录目前能找到的最小值元素的下标 min = j; } } // 将找到的最小值和i位置所在的值进行交换 if (i != min) { int tmp = arr[i]; arr[i] = arr[min]; arr[min] = tmp; } } return arr; } }
冒泡排序(相邻的两个元素比较 最大(小)的移动到最后一位)
public class BubbleSort implements IArraySort {
@Override
public int[] sort(int[] sourceArray) throws Exception {
// 对 arr 进行拷贝,不改变参数内容
int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
for (int i = 1; i < arr.length; i++) {
// 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。
boolean flag = true;
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = false;
}
}
if (flag) {
break;
}
}
return arr;
}
}
进制转换
class ArrayTest7 { public static void main(String[] args) { //toBin(-6); //toHex(-60); //toBa(60); // System.out.println(Integer.toBinaryString(6)); // System.out.println(Integer.toHexString(6)); } /* 十进制-->二进制 */ public static void toBin(int num) { trans(num,1,1); } /* 十进制-->八进制 */ public static void toBa(int num) { trans(num,7,3); } /* 十进制-->十六进制 */ public static void toHex(int num) { trans(num,15,4); } public static void trans(int num,int base,int offset) { if(num==0) { System.out.println(0); return ; } char[] chs = {'0','1','2','3' ,'4','5','6','7' ,'8','9','A','B' ,'C','D','E','F'}; char[] arr = new char[32]; int pos = arr.length; while(num!=0) { int temp = num & base; arr[--pos] = chs[temp]; num = num >>> offset; } for(int x=pos; x<arr.length; x++) { System.out.print(arr[x]); } return ; } }
注意事项 :short byte char 运算时都会转为int类型 byte只要运算就会提升为int 类型 byte a=1,b=2,c; c=(byte)(a+b);
char 类型是单引号 String 类型用双引号
'a'+2 和"a"+2的区别 'a'+2=98 "a"+2=a2
for 循环 可以直接跳出外循环
重载函数 可以写多个同名函数 不是重载函数 不可以写同名函数
f不重载是因为 函数返回值不同,不知道是返回void 还是 double
(重载只看参数是否一致即可)
数组初始化 int arr1[]=new int[5]; arr1[] 初始化里面都是0
自动转化 byte 和 short 不能转化成char
强制类型转化 上图反过来 浮点型转int 不会四舍五入
查找数组元素
反转
评委打分
主函数