- 博客(51)
- 收藏
- 关注
原创 java核心技术 第11版 输入与输出
输入域与输出输入/输出流读写字节完整的流家族组合输入/输出流过滤器文本输入与输出如何读入文本输入以文本格式存储对象字符编码方式读写二进制数据DataInput和DataOutput接口随机访问文件zip文档对象输入 / 输出流与序列化保存和加载序列化对象修改默认的序列化机制序列化单例和类型安全的枚举版本管理为克隆使用序列化操作文件Path读写文件创建文件和目录复制, 移动和删除文件获取文件信息访问目录中的项使用目录流zip文件系统内存映射文件内存映射文件的性能缓冲区数据结构文件加锁机制正则表达式匹配字符串找
2021-10-24 14:49:40
580
原创 java核心技术 第11版 流
从迭代到流的操作var contents = new String(Files.readAllBytes(Path.get("alice.txt")), StandardCharsets.UTF_8);List<String> words = List.of(contents.split("\\PL+"));int count = 0;for (String w: words){ if(w.length() > 12) count++;}使用流时相同的操作如下所示l
2021-10-17 14:48:03
999
原创 java核心技术 第11版 并发
线程package threads;/** * @author Cay Horstmann */public class ThreadTest { public static final int DELAY = 10; public static final int STEPS = 100; public static final double MAX_AMOUNT = 1000; public static void main(String[] args
2021-10-16 23:56:40
352
原创 StartActivityForResult方法被弃用的替代方案
StartActivityForResult的替代方案StartActivityForResult方法被弃用的替代方案StartActivityForResult方法被弃用的替代方案使用registerForActivityResult进行替代, 亲测可用首先创建一个Contract Class implements ActivityResultContract<X, Y>, 重写 creatIntent, parseResultX, Y 分别指传入参数和传出参数class Contr
2021-08-11 14:39:37
9193
2
原创 算法思想-动态规划
动态规划动态规划(dynamic programing)应用于子问题重叠的情况, 即不同的子问题具有公共的子子问题通常按如下四步设计动规算法:刻画一个最优解的结构特征递归地定义最优解的值计算最优解的值, 通常采用自底向上法利用计算出的信息构造最优解钢条切割假设有一长度为i钢条, 销售价格表如下长度12345678910价格1589101717202430求利润最高的切割方式过程分析长度为n的钢条一共有2^(n- 1)种
2021-08-02 09:38:49
153
原创 java核心技术 第11版 集合
java 核心技术第11版 集合java集合框架集合接口与实现分离Collection接口迭代器泛型实用方法API集合框架中的接口链表API数组列表散列集API树集API队列与双端队列API优先队列API映射基本映射操作API更新映射条目映射视图弱散列映射链接散列集和映射枚举集与映射表示散列映射视图与包装器小集合子范围不可修改的视图同步视图检查型视图算法泛型算法排序和混排二分查找简单算法批操作集合和数组间的转换遗留的集合Hashtable类枚举属性映射栈位集java集合框架集合接口与实现分离java
2021-07-10 22:24:24
2101
原创 java核心技术 第11版 泛型程序设计
java核心技术 第11版 泛型程序设计定义简单泛型类泛型方法类型变量的限定泛型代码和虚拟机类型擦除转换泛型表达式转换泛型方法调用历史遗留代码限制与局限性泛型类型的继承规则通配符类型通配符概念通配符的超类型限定无限定通配符通配符捕获反射和泛型泛型Class类API使用Class< T > 参数进行类型匹配虚拟机中的泛型类型信息类型字面量API泛型的引入, java允许设计者详细的描述变量和方法的类型要如何变化定义简单泛型类public class pair<T>{ p
2021-07-10 22:23:52
336
1
原创 西安邮电大学课设——TTMS系统开源代码
在这里写啥了, 反正我可以保证这个应该是在所有开源代码中bug相当少的一版, 已知bug是订票模块票显示有时候会有问题, 大佬们能行的就帮忙改改吧。TTMS系统开源代码(github)
2021-07-10 21:01:58
1183
3
原创 java核心技术 第11版 异常, 断言和日志
java使用了一种称为异常处理(exception handing) 的错误捕获机制, 断言可以有选择的启动检查处理错误假设java程序运行期间出错,若是某个方法不同通过正常途径完成任务, 方法并不会返回任何值, 而是**抛出(throw)一个封装错误信息的对象,随后方法退出运行, 异常处理机制开始搜索能处理该情况的异常处理器(exception handler)异常分类异常对象都派生于Throwable类的一个类实例Error类层次结构描述java运行时系统内部错误和资源耗尽错误, 通常很少见
2021-06-03 15:55:50
459
2
原创 leetcode No.1235规划兼职工作 动态规划
首先对end进行排序, 将整体数据有序化。随后, 设f[i]为第i份工作的最大工资则f[i] = max(f[ i - 1 ], f[ j ] + sal)j表示在i工作开始之前赚到的最多的工资
2021-05-28 09:44:23
272
原创 java核心技术 第11版 接口,Iambda表达式, 内部类
接口(interface)又来描述类应该做什么, 而不指定如何做一个类可以实现(implement)一个或多个接口。lambda表达式可以用一种精巧的方式表示使用回调或可变行为的代码。内部类(inner class)定义在另一个类的内部, 其方法可以访问包含它们的外部类的字段代理(proxy)可以用来构造系统级的工具。接口接口的概念接口是对希望符合这个接口的类的一组需求让类实现接口的步骤:将类声明为实现给定的接口, 使用关键字implements对接口中的所有方法提供定义java是
2021-05-27 20:52:35
479
原创 leetcode No.461汉明距离
题目解出来非常简单, 但是最优解即O1解略烧脑int hammingDistance(int x, int y){ int ret = x ^ y; ret = (ret & 0x55555555) + ((ret >> 1) & 0x55555555); ret = (ret & 0x33333333) + ((ret >> 2) & 0x33333333); ret = (ret & 0x0f0f0f0f) + ((ret &.
2021-05-27 17:15:34
112
原创 leetcode No.1787 使所有区间异或和为0
整体题目用到动态规划思想, 首先很容易得出nums[i] = nums[i + k];故题目要求即可简化接下来求前i列异或和为xor, 当前列数字为cur。若是第零列, 那么f[0][xor] = times - hashTable.get(xor);若是后面几列,若当前列数字全改, f[i][xor] = minval[i] + times;若仅修改部分数字, f[i][xor] = f[i - 1][xor ^ cur] + times - hashTable.get(cur);然后去求最.
2021-05-26 19:23:05
391
原创 博弈论--------- ICG黑板异或游戏 leetcode-810
很明显的ICG博弈, 若异或和为零则 数组中有偶数个相同的数两个玩家都会去消除重复的数来保证消除后结果不为零最终剩下一堆不重复的数如此对局进行至n次, 全部消除, 对局结束。因为会对局n次, n为偶数最终bob失败, alice获胜。若异或和不为零,则数组中有偶数个相同的数与不相同的数两个玩家可以先消除不相同部分和相同的部分来保证结果不为零若相同的数数量为n, 不相同的数数量为m对局进行n+ m次, 全部消除, 对局结束若n+ m为偶数, 则bob失败, alice胜利若为奇数,.
2021-05-22 21:15:46
245
1
原创 求最大子序列和的那些事
第一种算法: 穷举int MaxSubsequenceSum(const int A[], int N){ int ThisSum, MaxSum, i, j, k; MaxSum = -2147483647; for (i = 0; i < N; i++) for (j = i; j < N; j++) { ThisSum = 0; for (k = i; k <= j; k++) ThisSum += A[k]; if(ThisSum &g
2021-05-19 18:30:56
113
原创 java核心技术第11版 继承
类、超类和子类例如员工只有标准工资, 而经理有工资加奖金,Manager和Employee之间存在明显的“is-a”关系定义子类使用关键字extends表示继承public class Manager extends Employee{ add methods and fields}构造的新类诞生与一个已存在的域(超类(superclass), 基类(base class)或父类(parents class)), 新类称为子类(subclass), 派生类(derived class)或
2021-05-16 19:02:55
330
原创 洛谷5月月赛Ⅱ 比赛总结
因为对树的知识尚不熟悉, 所以只完成了A与B题。A.凑数这道题算是比较简单的, 通过输入的n去计算最大等差数列和最小等差数列, 如果所求数在这两个值之间, 则必然可求#include <stdio.h>_Bool Sum(unsigned long long n,unsigned long long k,unsigned long long s);int main(void){ long t; unsigned long long n, k, s; scanf("%ld
2021-05-16 14:36:39
231
原创 java核心技术第十版 卷1 对象和类
面向对象程序设计简称OOP类类(class)是构造对象的模板。由类构造(construct)对象的过程称为创建类的实例(instance)封装(encapsulation)从形式上是将数据和行为组装在一个包中, 并对对象使用者隐藏数据的实现方法, 对象中的数据称为实例域(instance field), 操纵数据的过程称为方法(method)可以通过扩展一个类来建立新的类。java所有的类都源自于一个叫Object 的超类通过扩展一个类来建立另外一个类的过程称为继承(inheritance)。
2021-05-10 21:56:57
238
原创 java的基本程序设计结构
package hello;public class FirstSample{ public static void main(String[]args) { System.out.println("Hello World!"); }}源代码的文件名必须与公共类的文件名相同。main方法必须声明为public如果希望在终止程序时返回其他代码, 需要调用System.exit方法。C#中文件注释为///, java中文件注释为以/**开始, */结束。
2021-04-28 20:46:20
194
原创 java 初识
jvm --------跨平台虚拟机JRE 与 JDKJRE (java runtime environment)JDK(java development Kit)常用dos命令盘符:dircd 目录cd…cd /cls -------清屏exit
2021-04-23 23:53:43
167
原创 数据结构----头节点和头指针的异同
头节点和头指针的异同头指针是指指向第一个节点的指针, 若链表有头节点, 则是指向头节点的指针。无论链表是否为空, 头指针均不为空。头节点是为了操作统一和方便而设立的, 头节点不一定是链表的必须要素。typedef struct node{ElemType data; //数据域struct Node * Next; //指针域}Node;typedef Node * LinkList;...
2021-04-23 23:53:08
649
原创 数据结构 单链表
单链表的整表创建思路如下:声明一节点p和计数器变量i;初始化一空链表L;让L头结点指针指向NULL, 即创建一个空表循环实现后继节点的赋值和插入头插法:先让新节点next指向头节点之后然后让表头的next指向新节点尾插法:从链表的尾部进行插入静态链表用数组描述的链表叫做静态链表, 这种描述方法称为游标(cursor)实现法#define MAXSIZE 1000typedef struct{ ElemType data; int cur; //游标(cur
2021-04-23 23:52:26
159
原创 算法基础------算法导论第三章
二分查找伪代码如下:Type Search(array, val, low, high){ if(low > high) return nil; mid = (low + high) / 2; if(val == A.mid) return mid; if (val < A.mid) return Search(array, val, low, mid - 1); else return Search(array, val, mid+ 1, high);}
2021-04-23 23:50:53
107
原创 leetcode 只出现一次的数
本题用到离散数学方面知识int singleNumber(int* nums, int numsSize){ unsigned one = 0, two = 0; for (int i = 0; i < numsSize; i++) { one = (one ^ nums[i]) & (~two); two = (two ^ nums[i]) & (~one); } return one;}...
2021-04-21 21:36:42
86
原创 栈, 队列, 链表
栈实现的是一种LIFO(last-in, first-out)策略。栈上的INSERT操作称为压入(PUSH), DELETE操作称为弹出(POP)。如果试图对一个空栈进行弹出操作, 称之为栈下溢(underflow), S.top超过了栈上限n, 称之为栈上溢(overflow)。数组栈数组栈ADT# pragma once/*数组栈ADT*/#include <stdbool.h>#define MAXSIZE 100typedef struct stack { int
2021-04-18 23:39:29
98
原创 洛谷-数独解算
利用深度搜索, 进行检索#include <stdio.h>#include <string.h>#include <stdlib.h>int sudoku[10][10];_Bool row[10][10] = {0};_Bool column[10][10] = {0};_Bool square[10][10] = {0};void DepthFirstSearch(int i, int j);void ShowSquare(void);int
2021-04-18 19:59:18
165
原创 C# 方法
方法方法的结构方法是一块具有名称的代码方法是类的函数成员, 方法主要有两个部分, 方法头和方法体void MyMethod(){ Console.WriteLine("First"); Console.WriteLine("Last");}方法体的块中可以包含:本地变量控制流结构方法调用内嵌的块static void Main(){ int myInt = 3; //本地变量 while(myInt > 0) //控制流结构 { --myI
2021-04-17 15:06:50
314
原创 C# 编程概述;类型,存储和变量; 类:基础;
using System;namespace Simple{ class Program //声明一个类 { static void Main() { Console.WriteLine("Hi, there!"); } }}
2021-04-16 22:20:35
200
原创 c学习笔记 第17章 高级数据表示 20210414
链表和数组数组:优点:c直接支持提供随机访问、缺点:在编译时确定大小插入和删除元素很费时链表:优点:运行时确定大小快速插入和删除元素缺点:不能随机访问用户必须提供编程支持数组可以直接使用数组下标直接访问数组中的任意元素, 这叫做随机访问(random access), 对链表而言, 必须从链表首节点开始逐个访问, 这称之为顺序访问(sequential access).若要查找链表中的特定项, 一种算法是顺序查找(ssequential search)(可以使用并发编程,
2021-04-15 22:30:44
199
原创 c学习笔记 第17章 高级数据表示 20210410
队列ADTc语言中以抽象数据类型方法变成有以下三步:以抽象通用的方式描述一个类型, 包括该类型的操作设计一个函数接口表示这个新类型编写具体的代码实现接口定义队列抽象数据类型队列(queue)是具有特殊属性的链表只能将新项添加到链表的末尾只能从链表的开头移除项。队列是一种“先进先出”(first in, first out, 缩写为FIFO)的数据形式| 类型名 | 队列 || 类型属性 | 可以储存一系列项 || 类型操作 | 初始化队列为空 |确定队列为空确定队
2021-04-14 17:28:44
164
原创 数据结构 2021-04-07
传统上, 数据结构分为逻辑结构和物理结构逻辑结构:数据对象中数据元素相互之间的关系物理结构: 数据的逻辑结构在计算机中的存储形式四大逻辑结构:集合结构, 线性结构, 树形结构, 图形结构;物理结构:存储器主要针对内存而言数据存储结构: 顺序存储结构, 链式存储结构;链式存储结构的元素不能反映其逻辑关系, 因此需要一个存放数据元素的地址的指针。...
2021-04-14 17:26:01
116
原创 c学习笔记 第17章 高级数据表示 20210408
建立接口简单链表有两个部分第一部分是如何表示数据, 第二部分是描述实现ADT操作的函数。接口设计应尽量与ADT描述一致#define TSIZE 45struct film{ char title[TSIZE]; int rating;};typedef struct film Item;定义完毕Item后, 需确定如何储存这种类型的项typedef struct node{ Item item; struct node * next;} Node;typedef Node
2021-04-09 19:44:42
141
原创 c 学习笔记 c预处理器和c库 清明节篇
c预处理器在程序执行之前查看程序, 根据预处理指令, 将符号缩写替换为表示的内容, 预处理器可以包含程序需所需的其他文件, 选择让编译器查看哪些代码。基本上预处理器工作只是把一些文本转换为其他文本。翻译程序的第一步预处理之前编译器会对程序作出一些翻译处理:编译器将源文件中出现的字符映射, 该过程处理多字节字符和三字符序列;随后编译器定位每个反斜杠后面跟着换行符的实例, 并删除他们, 将数个物理行(physical line)转换成一个逻辑行(logical line);随后编译器把文本划分为预处理记
2021-04-08 20:44:37
149
原创 c学习笔记 20210406 c预处理库和c库
_Noreturn函数(c11)c99时, inline是唯一的函数说明符, c11新增第二个函数说明符_Noreturn, 表明调用完成后函数不返回主调函数, exit()函数是_Noreturn函数的一个示例, 该函数不会把控制返回主调函数, 告诉用户以免滥用该函数, 通知编译器可优化一些代码C库访问C库其取决于实现, 需了解当前系统的 一般情况自动访问一些系统只需编译程序, 就可使用常见的库函数文件包含可以通过#include 指令包含定义宏参数的文件, 通常类似的宏都放在合适名称的头
2021-04-07 21:22:58
182
原创 c学习笔记 第17章:高级数据表示 20210331
c将指针和int类型都储存为整数, 但两种类型可进行有效操作不同。数据表示#include <stdio.h>#include <limits.h>#include <stdbool.h>#include <string.h>#define TSIZE 45#define FMAX 5struct film { char title[TSIZE]; int rating;};int main(void){ struct film
2021-04-01 18:38:57
144
原创 C学习笔记 位操作 20210330
用法: 关闭位(清空位)假设mask只有1号位为1flags = flags & ~mask;mask中为1的位都被设置清空简化形式:flags &= ~mask;用法: 切换位使用按位异或运算符。如果mask 为1, 1^ mask 为0, 0^mask为1.(00001111) ^ (10110110)// 结果为(10111001)用法: 检查位的值if ((flags & mask) == mask) puts("Wow");如果mas
2021-03-30 23:20:10
313
1
原创 c学习笔记 位操作 20210329
inline内联函数(c++, c):inline只适合涵数体内代码简单的函数数使用,不能包含复杂的结构控制语句例如while、switch,并且内联函数本身不能是直接递归函数(自己内部还调用自己的函数)inline关键字作用就是直接把函数语句复制到调用函数的地方。inline可以避免函数被频繁调用,不断地有函数入栈,造成栈空间或栈内存的大量消耗二进制数、位、 字节二进制整数c用字节(byte)表示储存系统字符集的大小, 一字节8位, 即八位组(octet), 编号为七的称为高阶位(hig
2021-03-29 21:04:40
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人