4.Java基础

3W1H

What(是什么)  : 目的是什么?重点是什么?功能有哪些?规范有什么?
Why(为什么)   : 为什么要做?可不可以不做?有没有替代方案?
Where(在哪里) : 范围,地点(地方),切入点
How(如何做)   : 方法,如何做


以注释为例:
What  : 什么是注释?
Why   : 为什么要有注释?可以没有注释吗?
Where : 注释写在哪里?
How   : 如何写注释?怎样写注释才规范?

1.注释

// 单行注释,多用于局部变量或方法中的说明

/*
    多行注释
    ......
*/

/**
 * 类 文档注释
 * @author 作者(创建者)
 * @version 版本号
 * @data 日期
 * ......
 */

 /**
  * 成员变量 文档注释
  */

 /**
  * 方法 文档注释 
  * @param 参数名称: 参数说明
  * @return: 返回值说明
  * ......
  */

2.数据类型

2.1 基本数据类型
类型名称关键字位数内存默认值取值范围包装类
字节型byte81 字节0-128~127java.lang.Byte
短整型short162 字节0-32768~32767java.lang.Short
整型int324 字节0-2的31次方到2的31次方-1java.lang.Integer
长整型long648 字节0L-2的63次方到2的63次方-1java.lang.Long
单精度浮点型float324 字节0.0F存储小数, 存储 6 到 7 个十进制数字java.lang.Float
双精度浮点型double648 字节0.0D存储小数,存储 15 位十进制数字java.lang.Double
字符型char162 字节‘u0000’0 -> 65535(存储单个字符/字母或ASCII值)java.lang.Character
布尔型boolean81 字节falsetrue 或 falsejava.lang.Boolean
2.2 String类

使用 String 类来创建和操作字符串,注意:String 类是不可改变的

// 创建字符串
String abc = "abc"; // 等效于如下方式
char data[] = {'a', 'b', 'c'}; 
String str = new String(data);

// 字符串拼接
String s = "ab" + "cd";

// 常用方法
contains(CharSequence s) // 当且仅当此字符串包含指定的char 值序列时,返回 true
endsWith(String suffix) // 测试此字符串是否以指定的后缀结束
equals(Object anObject) // 将此字符串与指定的对象比较
equalsIgnoreCase(String anotherString)// 字符串比较时,不考虑大小写
indexOf(String str) // 返回指定子字符串在此字符串中第一次出现处的索引
lastIndexOf(String str) // 回指定子字符串在此字符串中最右边出现处的索引
length() // 返回此字符串的长度
matches(String regex) // 告知此字符串是否匹配给定的正则表达式
split(String regex) //根据给定正则表达式的匹配拆分此字符串,返回的是字符串数组
startsWith(String prefix) // 测试此字符串是否以指定的前缀开始
trim() // 返回字符串的副本,忽略前后空白
2.3 数组
// 声明数组变量
// 首选的方法
dataType[] arrayRefVar;
// 或
dataType arrayRefVar[]; 

// 创建数组
arrayRefVar = new dataType[arraySize];

// 声明并创建
dataType[] arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = {value0, value1, ..., valuek};

// 例1 : 基本数据类型数组
double[] myList = new double[10];
myList[0] = 5.6;

// 例2 : String类数组
String[] myList = {"张三", "李四", "王五"};

3.变量

3.1 声明格式
type identifier [ = value][, identifier [= value] ...];
3.2 变量类型

成员变量:

  类变量:独立于方法之外的变量,用 static 修饰

  实例变量:独立于方法之外的变量

局部变量:形参、方法内局部变量、代码块内局部变量

3.3 实例
// 声明
int a;
// 赋值    
a = 1;     
// 声明并赋值
int d = 3, e = 4, f = 5; 
// 声明数组
double[] doubleArray = new double[10];
// 赋值
doubleArray[0] = 3.14;
// 声明数组并赋予初值
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
// 声明对象并初始化
Student student = new Student("张三", 18);

4. 修饰符

修饰符用来定义类、方法或者变量,通常放在语句的最前端

4.1 访问控制修饰符
名称使用对象说明
default类、接口、变量、方法在同一包内可见,默认不写
private变量、方法在同一类内可见
protected变量、方法对同一包内的类和所有子类可见
public类、接口、变量、方法对所有类可见
4.2 非访问修饰符
名称使用对象说明
static方法、变量、代码块、静态导入类名.方法/变量
final类、方法、变量不能被修改
abstract类,方法抽象类、抽象方法
synchronized方法上、方法内同一时间只能被一个线程访问
transient成员变量在序列化时被忽略
volatile成员变量仅保证可见性,禁止指令重排序

5. 运算符

  • 算术运算符 : + 、- 、* 、/ 、%、++、–

  • 关系运算符 : ==、!=、> 、< 、>=、<=

  • 位运算符 : &、|、^、〜、<< 、>>、>>>

  • 逻辑运算符 : &&、||、!

  • 短路逻辑运算符 : if (denom != 0 && num / denom > 10)

  • 赋值运算符 : =、+= 、-= 、*= 、/= 、%= 、<< = 、 >> =、&= 、^ =、| =

  • 条件运算符(三元运算符) : variable x = (expression) ? value if true : value if false

6. 条件语句

6.1 if语句
if(布尔表达式 1) {
   //如果布尔表达式 1的值为true执行代码
} else if(布尔表达式 2) {
   //如果布尔表达式 2的值为true执行代码
} else if(布尔表达式 3) {
   //如果布尔表达式 3的值为true执行代码
} else {
   //如果以上布尔表达式都不为true执行代码
}
6.2 switch语句
switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

7 循环结构

7.1 for循环
// 普通for循环
for(初始化 ; 布尔表达式 ; 更新) {
    // 代码语句
    // break; continue;
}

// 加强for循环
for(类型 变量 : 数组或集合对象) {
    // 代码语句
    // break; continue;
}

// jdk8及后续版本
集合.forEach(Lambda表达式)

List<String> list = new ArrayList<>();
list.forEach(System.out::println);

Map<String, String> map = new HashMap<>();
map.forEach((k, v) -> System.out.println("k = " + k + ",v = " + v));

int[] myArray = {1,2};
Arrays.stream(myArray).forEach(System.out::println);

// 注意: Arrays.asList()方法传递进去的数组应该是一个对象数组,
// 此处传递进去的参数是一个基本类型数组,它创建了一个数组集合,
// 所以该集合的仅有唯一元素是myArray
Arrays.asList(myArray).forEach(System.out::println); // 不会打印出1,2

// 分开写法
int[] myArray2 = {1, 2};
List<int[]> list = Arrays.asList(myArray2);
list.forEach(System.out::println);
7.2 while循环
while( 布尔表达式 ) {
  // 代码语句
}
7.3 do…while循环
do {
   // 代码语句
} while ( 布尔表达式 );

8 方法

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}
public class Student {

    // 成员变量, 调用方式: Student.age;
    public static Integer age = 18;

    // 实例变量, 调用方式: 
    // Student student = new Student();
    // student.name;
    public String name;

    // 无参构造方法, 调用: Student student = new Student();
    public Student() {
        super();
    }

    // 有参构造方法, 调用方式:  Student student = new Student(“张三”);
    public Student(String name) {
        this.name = name;
    }

    // 普通方法, 调用方式: 
    // Student student = new Student();
    // student.sum(1,2);
    public int sum(int num1, int num2) {
        // 代码语句:局部变量,条件语句,循环结构
        return num1 + num2;
    }

    // 静态方法, 调用方式:  Student.getFullName("张",“三”)
    public static String getFullName(String first, String second) {
        // 代码语句:局部变量,条件语句,循环结构
        return first + " " + second;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值