java note 12:总结 基础,常用类,正则,集合,IO流,迭代器,异常

1.Java基础

1.1 Java历史

1.2 Java优势

1.2.1 跨平台

? JVM java virtual machine虚拟机
? JRE java runtime environment运行时环境
? JVM + 类库
? JDK Java development kit开发工具
? JRE + 工具
? www.oracle.com -> 下载JDK对应不同操作系统的jdk版本

1.2.2 其它优势

? 面向对象
? 安全性
? 健壮性
? 多线程
? 垃圾回收(garbage colection)
? 提供系统级线程 - jvm空闲 - 自动回收(释放)无用的内存

1.3 Java编程

1.3.1 环境变量

? JAVA_HOME
? path - %JAVA_HOME%\bin;

1.3.2 编程-命令

? cd 目录名
? javac
? java

1.3.3 IDE集成开发环境

? eclipse
? idea
?

2. Java基础语法

2.1 有效标识符(类、接口、变量、方法…)

? 字母、_、$ 开头, 后面可有数字
? 3保留字
? true、false、null
? 50关键字

 packageimport 引入
 publicprotectedprivate 范围
 classinterfaceenumabstract 类型
 byteshortintlongfloatdoublecharboolean 基本类型
 voidreturn
 ifelseswitchcasebreakdefault   分支
 forwhiledocontinue                循环
 extendsinstanceofthissupernewimplements
 staticfinal
 trycatchfinallythrowsthrow       异常
 synchronized
 gotoconst    java不用
 nativeasserttransient
 strictfpvolatile

2.2 命名规范

? 包 - 小写
? 类、接口、enum、注解 - 单词字母大写
? 变量、方法 - 消首字母小写, 第二个单词首字母大写

2.3 package

? java文件结构

? com.域名.项目.模块.操作

2.4 类 class

2.4.1 注释
/**
 * 类的作用 - 文档注释 - 类、方法、构造器
 *
 * @author 作者
 * @date 
 * company ...
 */
public class ClassName {
    
    //主入口  -  单行注释   -  变量、语句
    public static void main(String[] args) {
        /*
         * 多行注释
         */
    }
    
}
2.4.2 变量
数据类型 变量名 [= value];   	-  [代表可有可无]
    数据类型
    	基本类型
    		boolean
    		char
    		byteshortintlong
    			long ll = 2188888888L;
    		floatdouble
                float ff = 3.14F;
    	引用类型
    		String
    			"字符串"
    		Scanner
    			控制台输入
    		Random
    			随机数值
    
    变量使用之前 - 必须明确有值
2.4.3 运算符
	算术运算符
         +  -  *  /  %
        	不同精度数据计算
        	10 / 3 = 3;
		 ++  -- 
            变量后、前
    赋值扩展运算符
         +=   *= ...
         byte b1 = 10;
		 byte b2 = 10;
		 byte b3 = 10 + 10;		//okay
		 byte b4 = b1 + b2;		//error
		 b1 += b2;				//okay
    关系(比较)运算符
         >  >= < <= != ==
    逻辑运算符
        !
        &&  &
        ||  |
    字符串+运算符
        字符串 + 任何 -> 字符串
    三元运算符
        boolean表达式 ? true执行 : false执行;
    位运算符
    	~  &  |  ^  <<  >>  >>>
        十进制 -> 二进制
        	  -> 十六进制
        	  -> 八进制
        2计算得8 
        	2+6    2*4   2<<2
2.4.4 顺序流结构

? 自上向下

2.4.4.1 分支(选择、判断)结构
if(boolean表达式) {
    单路if语句;
}

if(boolean表达式) {
    true执行语句;
} else {
    false执行语句;
}

if(boolean表达式1) {
    true执行语句;
} else if(boolean表达式2) {
    true执行语句;
} else if .... {
    
} else {
    上面全部为false执行;
}

嵌套分支
    if语句 {
        if语句 {
            
        }
    }

switch(变量表达式) {
    case value1:			if(变量表达式 == value1)
        语句1;
        [break;]
    case value2:			else if(变量表达式 == value2)
        语句2;
        [break;]
    case...
    default:				else
        default语句;
        [break;]
}
	case - 为单独结构 - 必须加上 break;   若无break - 将继续向下执行 -至下一个break为止
    case - 相同结构合并(使用同一个break)
	
2.4.4.2 循环结构
基础for循环
        变量初始值   boolean表达式  变量变化
    for(int i = 0; i < 10; i++) {			// 次数执行
        语句;         
    }

	for - i++  ++i 相同     for 内部语句 - i++  ++i 不同
    for - 变量初始值 - for外部定义
    for内部 - 定义变量 int m = 10; - 每次循环 - 初始化结构
    // 求和、斐波那契定律、质数...
    int num = 111;
    boolean truth = true;
	for(int i = 2; i < num; i++) {
        if(num % i == 0) {
            truth = false;
            break;
        } 
    }
	// 基于truth - 质数、非质数显示
	if(truth) {
        sout("质数");
    } else {
        sout("非质数");
    }
        
    // 乘法表、图形 - 三角形、菱形...
    for 循环 {
        for 循环 {
            语句;
        }   
    }

while循环
	while(boolean 表达式) {
        语句;
    }
	
	//不确定次数 - 迭代器、结果集
	//输入数字 - 判断其为几位数    //输入选择不同结构
	
do-while循环
    do {
        语句;
    } while(boolean 表达式);		//先执行再判断
    	
forEach增强for循环
    数组、集合遍历
    
2.4.5 数组 - 引用类型
若干相同类型数据
    
    一维数组
    	定义
    		数据类型[] 数组名;
			int[] nums;
            String[] names;   
    	赋值
           	静态赋值
        		int[] nums = {value, ...};		//必须在=后直接赋值
				nums = new int[]{value, ...};	
			动态赋值
                int[] nums = new int[5];
					分配空间 - 默认初始值
                        引用类型
                        	null
                       	基本类型
                        	boolean - false	
                        	数值  - 0
                        	char - '\u0000'
		操作
            nums.length 
            索引下标
            	0 ~ length-1
            		nums[0]  - 获取、赋值、修改等
        循环
            for(int i = 0; i < nums.length; i++) {
                sout(nums[i]);
            }
		forEach增强for循环
            for(数据类型 变量名 : 数组名) {
                sout(变量名);
            }
		
    多维数组
    	二维数组 - 数组的数组
        	int[][] numss = {{...}{...}};
			int[][] numss = new int[][]{{...}{...}};

			//动态赋值 - 一维必须有值, 二维可定义值, 也可再操作时再赋值
			int[][] numss = new int[m][];

			//杨辉三角

Java基础 - Week02

1.方法

1.1 方法语法
修饰符 返回值类型 方法名([形参列表]) {
    
    [return value;]
}

修饰符:
	访问控制修饰符: private  缺省  protected  public 
	类特性: staticfinalabstract
返回值类型:
    无返回值: void
    有返回值:
			基本类型
            引用类型
                必须最后 return value;
1.2 方法访问

​ non-static方法

​ 对象.方法

​ static方法

​ 类名.static方法

1.3 值传递
基本类型
     	
引用类型
    new 
1.4 方法重载overload
执行相同操作 - 形参列表不同
    sum(int num1, int num2)
    sum(int num1, int num2, int num3)
    sum(double num1, double num2)
1.4.1 变长参数 - 数组
public void method(type... name)
public void method(int num, type... name)   //变长参数 - 形参最后
    
    命令行参数
    	java ClassName String字符串参数数据

2. 调试

2.1 console控制台
sout("--" + nn);
2.2 debug断点调试
breakpoint
    run as ...
    debug as ...
    	step into 			F5
    	step over           F6
    	force step into

3.面向对象

OPP procedure

OOP Object

3.1 类和对象

对象

对象 -抽象定义为class-> 类 -new实例化-> 对象

package 包结构;

import 包外的对象;

public|缺省 class ClassName {
    状态(属性、成员变量、全局变量)
        private 数据类型 属性名称;
    构造器(构造方法)
        修饰符 ClassName([形参]) {
        
    	}
    		1:类中未自定义 - 缺省构造器
            2: 类中自定义构造器 - 无缺省构造器
                构造器重载
                
                new 构造器(..)  -> 构建、实例化一个具体的唯一的新的对象、
                this(...)
    行为(方法、成员方法)
        setter、getter方法
        toString()
}

对象名.状态|行为
3.2 面向对象三大特性
3.2.1 封装

​ encapsulation

​ private + public

3.2.2 继承
3.2.3 多态

4. API

4.1 String
4.2 StringBuilder

Java基础 - Week03

1:API
1.1 正则表达式Pattern
Pattern pattern = Pattern.complile("正则");
Mathcer matecher = Pattern.matcher("输入内容");
boolean flag = matcher.matches();

boolean flag = Pattern.matches("正则""输入内容");

boolean flag = "输入内容".matches("正则");

正则表达式语法:
	x   字符x
    []
    \d
    \w
    *
    +
    {m,n}
1.2 包装类 - 8个基本类型
基本类型        <--相互转换-->       包装类
    int num = new Integer(10);		auto-unboxing
    Integer num = 10;				auto-boxing
    
    int num = Integer.parseInt("10");
2. 集合之ArrayList
对象数组
    Student[] students;

数组大小 - 不可变
    
ArrayList  -  变长数组  
    ArrayList<引用类型> list = new ArrayList<>();

	add(E)
    add(index, E)
    set(index, E)
    get(index)
    remove(index | object)
    clear()
    遍历 - for、forEach    
3. IO流
IO	-  File、网络 
    -  分类
    	输入、输出流
    	节点、处理流
    	字节、字符流
3.1 File 目录、文件
File(String path)
    path - 相对路径、绝对路径、相对绝对路径
File(File parent, String file)
    exists()
3.2 FileReader
BufferedReader reader = new BufferedReader(new FileReader("文件"));
reader.readLine();
3.3 FileWriter
PrintWriter pw = new PrintWriter(new FileWriter("文件", boolean 的append), boolean 的autoFlush);
	pw.print(x);
    pw.println(x);
3.4 内容copy
	read()
        char[] chs = new char[1024];
    	int len = read(chs)
    write()
        write(chs, 0, len);
4. 学生管理系统 - IO、String、正则、ArrayList

​ 管理员 - 登录

		    - 修改密码、添加新管理员、删除管理员
  • 学生管理
    • 添加、删除、查看、遍历、修改

JavaSE-advance05

1. 异常
异常 - 运行时
    
Throwable
    Error
    Exception
    	编译时、可查、checked
    		1:捕获
    			try {...} catch(XxxException | XxxxxException e) { ... }

    			try {
                    ...
                } catch(XxxException e) {		//必须从子类开始catch
                    e.getMessage();
                } catch(XxxxxxException e) {
                    e.printStackTrace();
                    e.printStackTrace(PrintWriter);
                } ... {
                    ...
                } finally {
                    不管trycatch中是否有异常都将执行的子句
                }     
                    
    		2:声明
    			throws
    	运行时、不可查、unchecked  - RuntimeException
            1: try-catch
            2: if 排除法
          
    自定义异常
        public class SelfException extends Exception {
            public SelfException(String message) {
                super(message);
            }
        }

		-- 特定情况 -> 手动 throw new SelfException("reason"); + 结合throws SelfException
2. 常用类
Object  -  根类
    toString()
    
    @Override
    equals(Object) + hashCode()
    
    getClass()   -  Class
    finalize()
    
    clone()	 --  implements Cloneable
    
Date
    java.util.Date
    	new Date();
    java.sql.Date
        Date.valueOf("yyyy-MM-dd");		

	DateFormat
        SimpleDateFormat(Pattern)
        
    Calendar
        get(int字段)
        set(int字段, value)
        
Math    
   round(double)
        NumberFormat
   abs
   ceil
   floor     
System
   gc()
   exit(int status)    
   currentTimeMillis()
   arrayCopy(src, position, dest, position, length)
3. 迭代器
Iterator<E>
    collection.iterator()
    
    hasNext()
    next()
    remove()	-  ArrayList-remove()区别?

ListIterator<E>
    arrayList.listIterator()
    	hasPrevious()
    	previous()
    	hasNext()
    	next()
    	remove()
    	set(E)
    	add(E)
4. 泛型
ArrayList<引用类型>
    
泛型类
    public class PageBean<T> {
        
    }

泛型方法
    public <T> T method(T t) {
    
	}
泛型接口
    public interface 接口<T> {
    
	}

通配符 - 方法、构造器
    <?>
	<? extends Class>    
    <? super Class>

5. 集合Collection
Collection根接口
    Set   无重复元素、无索引
    List  元素可重复、有序
5.1 List
ArrayList
    变长数组
LinkedList
    链表 - 单端队列、双端队列
Vector
   	变长数组 - 同步
    
    同异?
    
Stack
    FILO   first in last out 
5.2 Set
Set判断对象是否相同? 相同-不加
    hashCode值
    equals方法
    
HashSet
    无重复元素、无序
    
LinkedHashSet
    无重复元素、有序
    
TreeSet
    对象排序

JavaSE - Advance06

1. Collections
sort()
reverse()
shuffle()
binarySearch()
...
2. 排序
1: 对象排序
    Comparable<T>
    Comparator<T>
    
2:算法排序
    冒泡
    选择
    插入
3. Map映射<K, V>
HashMap<k, v>
Hashtable<k, v>   
LinkedHashMap<k, v>
    put(k, v)
    get(key)
    keySet()
    values()

Properties
    .properties文件
    	key=value
4. jar包
程序打包
    jar
    war
引入第三方jar   
5. IO

分类: 字节、字符, 节点、处理, 输入、输出

5.1 File
File - 文件、路径
    构造器
    	路径: 
			相对
            绝对
            相对绝对
File
    方法
         mkdirs()
         creatNewFile()
         exists()
         isFile()
         isDirectory()
             listFiles()   
         delete()
         rename()
5.2 字节流
InputStream
OutputStream
	文件copy(文件、目录)	
5.3 字符流
Reader
Writer    
    文本文件内容 - 读写
5.4 其他流
机器无关
    DataIO
    ObjectIO
    	序列化、发序列化
		public class ClassName implements Serializable {
            生成唯一的 serialVersionUID
            transient - 不参与序列化
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值