
笔记
文章平均质量分 73
柠七99
这个作者很懒,什么都没留下…
展开
-
深拷贝和浅拷贝详解
IO流的分类类:- File :文件操作流 - **字节流:Stream** (处理为字节的数据,write/read操作byte[] ,或一个byte)- **字符流:Reader、Writer** (处理为字符的数据,一般用在文本操作,操作byte[] 、byte、char[]、char)- **Input / Reader:输入流** (流的方向:读取 / 写入)- **Output / Write:输出流**- **Buffered:缓冲流**(开辟缓冲区)- **特殊:...原创 2021-03-20 16:58:31 · 350 阅读 · 0 评论 -
web前端开发相关知识记忆——html
html:描述网页的一种语言html标签:html 标签是由尖括号包围的关键词,比如 html 标签通常是成对出现的,比如 < b> < /b ><标签名 属性=“属性值”></标签名>(内部还可以放内容,内容可以是文本,可以是其他标签)html是xml的一种,遵循xml格式,只是html有部分特殊的标签写法,即不需要有结束标签html是网页文件,可以通过html提供页面元素(dom元素)html整体结构是一个树形结构,也叫.原创 2021-01-19 21:10:00 · 186 阅读 · 0 评论 -
操作系统——进程
操作系统(OS)的概念:一个基本的程序集合其中包括:(1)内核(进程管理,内存管理,文件管理,驱动管理)(2)其他程序(例如函数库,shell程序等)OS是一款纯正的"搞管理"的软件(1)可以是对硬件的管理也可以是对软件的管理 (2)可以是对内的管理(对进程),也可以是一种对外业务的管理(对硬件资源操作)进程首先什么是进程?对操作系统来说,一个任务就是一个进程课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU、内存)的实体,具有动态特性这里原创 2020-12-15 17:10:58 · 201 阅读 · 0 评论 -
JDBC常用的接口和类——接上篇
接上篇一、数据库连接:相关概念:数据库连接池:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。理解:数据库连接池是基于享元模式,可以重复使用资源,在初始化的时候就创建多个,每次使用完之后再还原,所有使用者共享资源,不用每次都创建资源,可以用于提高性能获取Connection的方法:通过DriverManager(驱动管理类)的静态方法获取原创 2020-11-22 22:54:52 · 126 阅读 · 0 评论 -
基于比较的七种排序算法的总结
1.冒泡排序最好时间复杂度:O(n)最坏时间复杂度:O(n^2)平均时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定2.插入排序最好时间复杂度:O(n) (数据有序)最坏时间复杂度:O(n^2) (数据逆序)平均时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定思想:1.[有序区间,无序区间],每次从无序区间中的数中选出一个,依次与有序区间的数进行比较,xuan代码:3.选择排序最好时间复杂度:O(n^2)最坏时间复杂度:O(n^2)平均时间复杂度:O原创 2020-11-09 21:34:58 · 924 阅读 · 0 评论 -
那些你将来面试会遇到的链表题---JAVA
package Link;//定义链表结点public class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; }}package Link;import java.util.List;public class LinkTest { public ListNode head; //尾插 public vo原创 2020-11-05 13:11:35 · 120 阅读 · 0 评论 -
有关二叉树的练习
回顾:二叉树的表示:二叉树的结点 vs 该结点为根的一棵树TreeNode node = rootTreeNode node = null; //没有结点二叉树的遍历(深度优先遍历):前序遍历:根 [左子树] [右子树]中序遍历:[左子树] 根 [右子树]后序遍历:[左子树] [右子树] 根练习:1.提供一棵树,数出有多少个结点法一:法二:2.给定一棵树,求这棵树的叶子结点的个数法一:法二:3.给定一颗二叉树,求该二叉树第k曾结点的原创 2020-10-24 15:38:57 · 168 阅读 · 0 评论 -
带你了解Java中的异常
异常(程序在运行时出现错误时通知调用者的一种机制):1.编译时异常,受查异常2.运行时异常,非受查异常而且需要注意区分错误和异常错误:异常:异常的基本操作:捕获异常:try{有可能出现异常的语句}catch(异常类型 异常对象) {} finally {异常的出口}如下:也可以使用或“|”来捕获多个异常注意:try中一旦出现异常,try中的代码就不会继续执行,将会交给catch继续执行finally:使用try回收资源:也可以用一个catch捕获所有异原创 2020-08-06 21:48:41 · 107 阅读 · 0 评论 -
学习StringBuffer 和 StringBuilder
StringBuffer 和 StringBuilder可以定义字符串在库函数上,这两个有些方法是String本身没有的,例如字符串反转,删除指定范围的数据,插入数据等操作利用StringBuffer 和 StringBuilder实现拼接(StringBuffer 的所有函数都加了关键字synchronized,建议多使用StringBuffer)在str += “hello”,这个代码实现拼接的时候,由反汇编代码可以看到在实现拼接的时候StringBuilder出现所以相当于如下代码原创 2020-08-06 16:59:04 · 131 阅读 · 0 评论 -
面向对象相关知识总结
多态向上转型:通过父类的引用引用,调用子类和父类重写的那个方法动态绑定:父类引用,引用子类对象是大前提(发生向上转型),同时父类和子类有一个同名的方法(覆盖/重写的方法),再通过父类的引用调用父类和子类同名的方法,此时会发生动态绑定 --》多态调用:注意:父类引用,引用子类对象之后只能调用父类自己的方法或者成员变量,除非这个方法在子类中也重写了,这时才会调用子类的这个重写的方法!!!例如:bird中的fly就不能被调用但是可以使用如下方法对fly进行调用(向下转型:父类向子类引用)但是向下原创 2020-08-03 21:18:05 · 125 阅读 · 0 评论 -
类和对象
注意:1.一个类可以产生/实例化多个对象 person1,person2…2.字段(成员变量、成员属性):类里面、方法外面定义的变量这里注意:main方法是静态的,若不是静态,则用以下方式实现1.被final修饰的叫常量,后续不可更改,常量在那个地方和是不是被final修饰无关2.一个变量存在于哪里和其是不是成员变量或局部变量有关3.从访问形式来说,静态的成员方法和属性都是通过类名进行访问的,不依赖对象4.从内存存储来说,只有是否被static所修饰,被static修饰的都在方法区,其他原创 2020-07-25 21:27:09 · 156 阅读 · 0 评论 -
数组的定义与使用
在Java中数组存放于堆中,在堆上开辟内存数组:存放一组相同数据类型的集合数组的创建:int[] arr1 = new int[5](动态初始化为0)和 int[] arr2 = new int[] {1,2,5,7,6}均是动态初始化数组的遍历:输出结果:这里需要注意访问不能越界,数组下标是从0开始,数组长度为6,所以 i 的值是不能取到6的。因为数组也是属于引用类型,他会在堆上开辟一段内存,而数组arr在栈上,用来存引用(地址)。注意引用类型的特点:引用类型的0值是null(nu原创 2020-07-22 20:06:29 · 265 阅读 · 0 评论 -
Java中的变量和运算符
Java-变量在Java中,要注意变量的名字需要采用小驼峰的形式例如 maxmaxNum(第一个单词首字母小写,之后的单词首字母大写)这里注意变量(即标识符)由数字,字母,下划线及$组成,但是不要用数字开头。int在Java中,整型为4个字节,它的取值范围为-2^31到2^31-1,这里的Integer为类名(包装类)可以使用MAX_VALUE+1,MIN_VALUE-1来进行运算并输出,但是不能直接使用超出其取值范围的值。例如:令int a=2147483648;longlo原创 2020-07-17 18:24:32 · 324 阅读 · 0 评论 -
变量与类型转换
final修饰常量在c中我们用const修饰常量,但是在Java中我们是用关键字final来修饰常量。变量在运行期间是可以改变的,而且变量的值在运行的时候才能知晓,但是常量是在编译期间就能确定的知道它的值(直接被替换),而且在运行期间不能被改变。以下代码中,可以看到a被重新赋值为20,但是只能初始化,所以c=40;但是当常量b被赋值的时候,程序将会报错,如下:也可以先定义一个常量,再进行初始化,但是只能初始化一次该反汇编中,是可以直接看到d的值(50),但是却不能直接看到c的值。所以可以印证变原创 2020-07-17 16:49:10 · 970 阅读 · 0 评论 -
二进制向其他进制的转换
方法:整数部分基数连除取余(从下到上),小数部分基数连乘取整(从上到下)对于给定的一个十进制整数,将其转为二进制形式方法:整数部分基数连除2取余(从下到上),小数部分基数连乘2取整(从上到下)例如对于:35.85对于一个给定的十进制整数,将其转为十六进制形式方法:整数部分基数连除16取余(从下到上),小数部分基数连乘16取整(从上到下)例如对于:93.85...原创 2020-07-16 19:57:57 · 756 阅读 · 0 评论 -
程序翻译
程序翻译 1. ##可以把位于它两边的符号合成一个符号,它允许宏定义从分离的文本片段创建标识符。#define ADD(num,value) x##num+=value在函数中调用ADD(1,100)时就变为x1+=100,但是在使用前需要先定义x1这一符号,否则将会报错。 2. 带副作用的宏参数当宏参数在宏的定义中出现超过一次的时候,如果参数带有副作用,那么你在使用这个宏的时候就可能出现危险,导致不可预测的后果。副作用就是表达式求职的时候出现永久性效果。例如:x+1 //不带副作原创 2020-07-11 23:40:28 · 616 阅读 · 0 评论 -
文件操作
文件操作文件r:只读,为了输入数据打开一个已存在的文本文件,若文件不存在,则出错。w:只写(清空式写入)为了输入数据打开一个文本文件,若文件不存在则建立一个新文件。a:追加式写入,向文本文件尾添加数据,但是若文件不存在,则出错。这里向用"w"所建的文本文件(abcdef123)中追加式写入"123"。rb:只读,为了输入数据,打开一个二进制文本文件,若文件不存在,则程序出错wb:只写,为了输出数据,打开一个二进制文件,若文件不存在会建立一个新文件。ab:追加,向一个二进制文件尾添加数据,若文件原创 2020-07-06 17:41:34 · 399 阅读 · 0 评论 -
动态内存管理
动态内存管理堆上开辟空间需要动态内存时;需要空间较大时;需要全局使用时使用堆开辟空间。以下是我们一般求数据最大值的代码,首先需要在栈上开辟足够空间防止溢出,但是这种情况就可能会存在空间浪费问题,不同的代码对空间大小的要求也不同,而且一般在栈上,能一次有效分配的空间有限,那么如何能解决这些问题呢?这时候动态内存管理(堆上开辟空间 )的存在就能帮我们解决这类问题。其优点:☞1.能决定开辟空间的大小。☞2.有效的使用空间。☞3.堆空间大于栈空间。malloc函数向内存申请一块连续可用的空原创 2020-06-26 13:43:59 · 218 阅读 · 0 评论 -
枚举与联合
枚举与联合枚举枚举常量 不能赋值枚举类型的本质是整形 默认从0开始依次递增所以一下程序的输出结果为0 1 2 3 4也可对枚举常量直接对其赋初值值修改,若RED=100,则结果为100 101 102 103 104,若RED=-100,则结果为-100 -99 -98 -97 -96,均是依次递增。但当如以下2情况赋值,则会被分为两段,输出结果为0 1 3 4 5枚举与宏宏也可以用来定义常量区别枚举可以用来枚举一堆强相关的常量,枚举可以很简单的用来枚举一大堆常量,但是宏所定义原创 2020-06-21 23:14:34 · 164 阅读 · 0 评论 -
内存操作的字符
内存操作字符1.memcpymencpy函数:一内存为单位,把后者拷给前者,拷贝num个字符。拷贝与类型无关(void*)。此处将tom拷贝给tom_cop。2.memmove在vs2013环境下,上述函数的调用均能实现,memmove与memcpy相差不大,但memmove能解决内存重叠问题。☞那么何为重叠问题?当我们自己编写实现memmove函数时,到调用my_memmove(str+1,str,len)将会发生下述情况,内存重叠,输出全为a。☞如何解决这一问题?这就需要我们根据原创 2020-06-13 18:21:56 · 215 阅读 · 0 评论 -
有关数据在内存中的存储举例
最近的学习主要就是剖析数据在内存中的存储。都知道计算机有原码,反码,补码三种表示方法,而且对于整形来说,数据是以补码的形式存放的,接下来就是我对此的相关知识与总结。首先,char默认为有符号类型,且a,b,c均以负1的补码1 0000 0001形式储存,第一个"1"为符号位(1为负,0为正),当以%d(整型)形式打印时,需要进行整型提升(这里注意整型提升时看的是自己的类型,即先提升,后打印!!!)->整型提升:有符号添加符号位,无符号加0所以a,b提升后为全1(32位),打印时(-1取反)即为-1,原创 2020-05-26 14:14:23 · 240 阅读 · 0 评论 -
扫雷
扫雷游戏继上次的三子棋游戏之后,我又接触了一个新的游戏——扫雷。(但是悄悄告诉你们一个秘密,接触了这个代码,我才知道是怎么玩扫雷游戏的,以前都是随便点,哈哈!)其实这个游戏和三子棋相差不大,以同样的思维构造好框架也就不是我们想象的那么难了。我现在是在渐渐熟悉头文件与源文件分开写,一个源文件对应一个头文件,这样写可以优化代码,而且方便后期的维护,因为,我们未来将要面对的不再是我们现在所学的那种很...原创 2020-04-24 14:06:44 · 228 阅读 · 0 评论 -
三子棋
关于三子棋游戏这是一个数组的应用原创 2020-04-19 21:52:25 · 120 阅读 · 0 评论 -
_hello csdn
第一次用优快云这一软件,来发表我的第一篇博客。怎么说呢,我只是一个普通的在校大二学生,没有什么特别的。就是这样一个普通的我在了解了编程之后,在不断憧憬着能在未来有一份高的薪资,一份满意的工作。刚开始接触编程这一领域是在我们的课本上,学习C语言,可是那时上课的我完全听不懂老师讲的什么,学了一学期也不过是勉勉强强能掌握一些最基本的知识,再到后来学习c++,也几乎是没有什么收获。但是就是这样一个什么都不懂的我,现在却选择了未来走编程这一道路,现在也在开始正式学习了。刚开始学习的我只想在经过学习之后能自己编写原创 2020-03-26 19:49:49 · 175 阅读 · 0 评论