JavaSE知识梳理
自己学习Java的部分学习笔记,供大家互相学习
基本框架–HelloWorld
public class hello{
public static void main(String[]args]){
System.out.println("你好,世界");
}
}
数据类型
基本数据类型
数据类型 | 表示 | 大小(字节) |
---|---|---|
字节类型 | byte | 1 |
短整形 | short | 2 |
普通整形 | int | 4 |
长整型 | long | 8 |
小浮点数 | float | 4 |
浮点数 | double | 8 |
字符 | char | 2 |
布尔 | boolean | 1位 |
引用数据类型
类、数组、接口、字符串等
类型转换
自动转换、强制转换
自动转换:由低转高 低精度转向高精度
示例:
int a =100;
double b =a;
System.out.println("a="+a); //a=100
System.out.println("b="+b);//b=100.0
强制转换:由高转低 高精度转向低精度,有损失
示例:
double b =12.34;
int a = (int) b;
System.out.println("a="+a); //a=12
System.out.println("b="+b);//b=12.34
常量定义
final MAX = 10;
命名规则
- 在定义常量时,要采用全大写+下划线的命名方式。
- 类的首字母要大写,要采用驼峰命名法。
- 不要使用拼音命名
运算符
算数运算符:+,-,*,/,%,++,–
赋值运算符:=
关系运算符:>,<,==,>=,<=,instanceof
位运算符:&按位与 |按位或 ^异或 ~非
条件运算符:A?B A:B
三种程序基本结构
顺序结构
按顺序,从上到下执行
选择结构
if语句
//利用if判断引用类型相等
int a=60;//定义及格标准
System.out.println("请输入你的成绩:");
Scanner b =new Scanner(System.in);
int d = b.nextInt();
if (d>a){
System.out.println("你超出及格线啦!");
}else if (d==a){
//双等于号 判断
System.out.println("你刚好及格");
}else {
System.out.println("继续加油!");
}
switch语句
注意此处case语句不写break,会导致程序穿透!
要定义default语句
//Switch 的理解及应用
for (int x = 0; x == 0; ) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
switch (a) {
case 1:
System.out.println("输入的是1");
break;
case 2:
System.out.println("输入的是2");
break;
case 3:
System.out.println("输入的是3");
break;
case 4:
System.out.println("输入的是4");
break;
case 5:
System.out.println("输入的是5");
break;
case 6:
System.out.println("输入的是6");
break;
default:
x = 1;
System.out.println("您选择退出");
break;
}
}
循环结构
for循环
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum = sum + i;
}
System.out.println(sum);
for-each
int[] ns = {
1, 4, 9, 16, 25};
int sum = 0;
for (int a : ns) {
// 定义一个变量a用来存放遍历的每个元素
sum += a;
}
System.out.println("sum=" + sum); // 55
while循环
当条件满足时,才执行循环体
while(ture){
//循环体;
}
do-while循环
//用do-while实现1-100加法
int sum = 0;
int n = 1;
do {
sum = sum + n;
n ++;
} while (n <= 100);
System.out.println(sum);
}
循环中continue 、 break、return的区别
continue 跳出本次循环,继续进入判断体开始下一次循环;
break 跳出循环 不再执行;
return 结束方法运行
方法 faction
定义与应用,方法的定义不能嵌套
任何数据类型都能作为方法的参数类型,或返回值类型。
示例:
public class hello {
public static void main(String[] args) {
int c=add(4,5); //引用方法
System.out.println("c="+c);
System.out.println("你好 Java");
}
public static int add(int a,int b){
//方法的定义
int c=a+b;
return c;
}
}
方法的三种调用方式
1.单独调用:方法名();
2.打印调用: System.out.println(方法名:(参数));
3.赋值调用:将返回值直接传入定义的变量,通过变量来打印输出。
方法的递归调用
利用递归调用的方法解决一些比较复杂的问题,但是其时间复杂度较高
采用递归调用的计算阶乘
public class HelloWorld {
public static void main(String []args) {
int x = faction(6);
System.out.println(x);
System.out.println("Hello World!");
}
public static int faction(int n){
if(n==0){
return 1;
}else{
return n*faction(n-1);
}
}
方法的重载
方法同名、功能类似、只是所用参数不同的多个方法 叫做方法重载。
示例
class person {
private String name;
public person(String name) {
this.name = "有参构造 初始化";
}
public person() {
this.name = "无参构造 初始化";
}
public void setName(String name) {
this.name = name;
}
public void setName