- 博客(20)
- 收藏
- 关注
原创 第十三章 多线程并发
第一节 多进程和多线程简介 当前的操作系统都是多任务os 每个独立执行的任务就是一个进程 OS将时间划分为多个时间片(时间很短) 每个时间片内将CPU分配给某一个任务,时间片结束,CPU将自动回收,再分配给另外任务。从外部看,所有任务是同时在执行。但是在CPU上,任务是按照串行依次运行(单核CPU)。如果是多核,多个进程任务可以并行。但是单个核上,多进程只能串行执行。 多进程的优点: - 可以同时运行多个任务 - 程序因IO堵塞时,可以释放CPU,让CPU为其他程序服务 - 当系统有多个CP
2020-09-08 16:15:30
178
原创 第十二章 高级字符串处理
第一节 正则表达式 正则表达式(Regular Expression): - 规则表达式,计算机科学的基础概念 - 用事先定义好的一些特定字符,及这些特定字符的组合,组成一个"规则字符串" - ^[A-Za-z]+$ 代表一个字符串只能由26个英文字母组成 java.until.regex包: - Pattern 正则表达式的编译表示 · compile编译一个正则表达式为Pattern对象 · matcher用Pattern对象匹配一个字符串,返回匹配结果 - Matcher · In
2020-09-07 14:16:00
192
原创 Leetcode Simple_26 删除排序数组中的重复项
我的思路 1. 创建Arraylist记录非重复的值,因为arraylist这个类型不需要在创建是声明长度 2. 记录非重复的值 3. 将非重复值赋到原array
2020-09-03 20:06:04
188
原创 第十一章 Java文件读写
第一节 文件系统及Java文件基本操作 java.if.File是文件和目录的重要类,目录也是用File类进行表示 File类与OS无关,但会受到OS的权限限制 常用方法:createNewFile, delete, exists, getAbsolutePath, getName, getParent, getPath... 注意:file不涉及具体的文件内容,只涉及属性 public static void main(String[] arts){ //创建目录 File d
2020-09-03 15:27:08
424
原创 第十章 Java数据结构
第一节 数组 数组是一个存放多个数据的容器 - 数据是同一类型 - 所有的数据是线性规则排列 - 可用过位置索引来快速定位访问数据 - 需明确容器的长度 第二节 Java Collection Framework 容器框架:为表示和操作容器而规定的一种标准体系结构 - 对外的接口:容器中所能存放的抽象数据类型 - 接口的实现:可复用的数据结构 - 算法:对数据的查找和排序 容器框架的优点:提高数据存取效率,避免重复劳动 绿色部分是列表-list 黄色部分是散列集合-se
2020-09-01 16:48:01
279
原创 Leetcode Simple_21 合并两个有序链表
我的思路 这题想到的应该是递归,但是整体的思路比较抽象,我直接将code post在下面。
2020-08-31 20:04:26
139
原创 Leetcode Simple_20 有效的括弧
我的思路 1. 利用栈 2. 依次读入括弧 3. 如果准备push的和栈顶的括弧相匹配,便取消push并将栈顶push出来 4. 最后判断是否为空栈
2020-08-30 18:43:40
146
原创 第九章 Java异常和异常处理
第一节 Java异常分类 异常:程序不正常的行为或者状态 - int a = 5 / 0 - 数组越界访问 - 读取文件,结果该文件不存在 异常处理 - 程序返回到安全状态 - 允许用户保存结果,并以适当方式关闭程序 Throwable:所有错误的祖先 Error:系统内部错误或者资源耗尽,不管 Exception:程序有关的异常,重点关注。 - RuntimeException:程序自身的错误,5/0,空指针,数组越界··· - 非RuntimeException:外界相关的错
2020-08-30 17:14:45
427
原创 Leetcode Simple_14 最长公共前缀
我的思路 1. 找到最短的string和最小长度 2. 对每个字符串进行loop,如果某个字母不相等直接return 题解思路 1. 找到最短的String和最小长度 2. 对最短的string,用二分查找来匹配。
2020-08-29 21:48:41
175
原创 Leetcode Simple_13 罗马数字转整数
我的思路 这题似乎没有什么特别的思路,两个指针一个now一个next,对可以特别组合的字符进行判断,如果next满足那个组合,就+特定的数字。 Java知识 获取String的某个index: String.charAt(index)
2020-08-29 20:42:40
166
原创 第八章 Java常用类
第一节 Java类库概述 包名以Java开始的包是Java的核心包(Java Core Package) 包名以Javax开始的包是Java扩展包(Java Extension Package) 第二节 数字相关类 Java数字类 - 整数 Short, Int, Long - 浮点数 Float, Double - 大数类 BigInteger(大整数), BigDecimal(大浮点数) - 随机数类 Random - 工具类 Math 大整数类 BigInteger:支持无限.
2020-08-28 19:00:13
161
原创 Leetcode Simple_9 回文数
我的思路 采用Simple_7的题解算法,在每次重组时进行测试,以免溢出int范围。 题解思路 1. 尽量在循环之前剔除特殊case,比如0结尾,负数。 2. 循环时判断条件为x > revertedNumber,则只loop一半的回文数。 3. 如果是偶数size的回文数x,则在循环结束时,revertedNumber刚好等于剩下的一半x。 4. 如果时基数size的回文数x,则在循环结束时revertedNumber多一位,但是中间的数字不影响回文数的判断。 ...
2020-08-27 18:28:04
176
原创 第七章 package,import和classpath
第一节 package和import 1. package package包,和C++中namespace类似。 包名package name尽量唯一。 域名是唯一的,硬刺常用域名做包名。 域名逆序:cn.edu.ecnu,范围通常从大到小。 嘞的完整名字:包名+类名,cn.edu.ecru.PackageExample 包名:和目录层次一样,cn\edu\ecnu\PackageExample 但是包具体放在什么位置不重要,编译和运行的时候再指定。 import规则: - i.
2020-08-27 17:00:52
394
原创 Leetcode Simple_7 整数反转
我的思路 利用数学方法在long取值范围下进行运算,结尾对long类型的ans进行test,如果溢出则进行调整。 Java知识 用到了三元表达式 x = (negativeFlag)? (int)(ans*(-1)) : (int)ans; 题解思路 直接在int取值范围下进行数学运算,但是在重组之前便判断此次重组是否会造成溢出。 ...
2020-08-26 19:53:55
188
原创 第六章 static, final和常量设计(续)
第四节 常量设计和常量池 常量:一种不会修改的变量 - Java没有constant关键字 - 不能修改,final - 不会修改/只读,static - 方便访问public Java中的常量 - public static final - 建议变量名字全大写,以连字符相连,如UPPER_BOUND Java为很多基本类型的包装类/字符串都建立常量池。 常量池:相同的值只存储一份,节省内存,共享访问。 基本类型的包装类: - Boolean, Byte, Short, Intege
2020-08-26 15:42:46
257
原创 Leetcode Simple_1 两数之和
我的思路 1. 先对nums数组进行排序。 2. 设置左右头尾指针。 3. 如果 sort[left] + sort[right] > target, 则说明sum过大,需要将sum变小,于是将右指针左移。 4.如果 sort[left] + sort[right] <target, 则说明sum过小,需要将sum变大,于是将左指针右移。 5. 通过两次for循环找到两个指针在原数组中对应的index。 Java知识 1. 对某一个数组进行排序:Arrays.sort(nu...
2020-08-25 20:53:48
174
原创 第六章 static, final和常量设计
第一节 static static可用在变量,方法,类,匿名方法块中。 1. static变量 static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在。即可以通过Potato.price即可访问。 所有的对象实例,如例子中的obj1和obj2关于price变量的值都共享存储在一个共同的空间(栈)。 2. static方法 静态方法也无需通过对象来引用,而通过类名可以直接引用, 在静态方法中只能使用静态变量,不能使用非静态变量。 静态方法禁止引用非静态方法。 3. s
2020-08-25 17:22:28
181
原创 第五章 继承,接口和抽象类
第一节 继承 父类/基类/超类 子类/派生类 子类会继承父类的所有东西,除了private。 单根继承原则:每个类只能继承一个类。默认继承Object类。 第二节 抽象类和接口 1. 抽象类 如果一个类有方法未实现,则为抽象类。 子类继承于抽象类,需要实现父类的所有abstract方法,否则子类也是abstract类。 2. 接口 如果一个类的所有方法都没有实现,则是interface接口类。 类可以implements多个interface。 a. 抽象类abstr
2020-08-24 18:12:34
209
原创 第四章 面向对象思想,类和对象
第一节 面向对象思想 对象 = 属性 + 方法 对象的规范 = 属性定义 + 方法定义 子类extends父类,无法继承private类 第二节 Java类和对象 基本类型的值小,可以直接拷贝。 对象包含多个值,不容易复制,赋值采用共享同一块内存区域。 第三节 构造函数 每个变量都只能存活在离他最近的{ }中,周期结束后,内存就会被JVM自动回收。 第四节 信息隐藏和this 1. 类的属性是私有的,private 2. 类的方法是public 3. this负责指向本类的成员变
2020-08-24 16:44:02
199
原创 第三章 类基础知识
第一节 Java类结构和main函数 public static void main (String [] args) -> PSVM 1. 一个Java文件只能有一个public class。 2. 一个文件可以有多个class,但是只有一个是public 类的构成: 1. 成员变量/属性 2. 成员方法/函数 第二节 Java基本类型和运算符 基本类型: 1. boolean:布尔 2. byte:字节 3. short/int/long:短整数/整数/长整数 4....
2020-08-24 16:36:43
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅