- 博客(30)
- 收藏
- 关注
原创 力扣124. 二叉树中的最大路径和
二叉树中的最大路径和路径: 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和: 是路径中各节点值的总和。题目要求:给你一个二叉树的根节点 root ,返回其最大路径和 。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,nu
2021-03-06 19:39:28
350
原创 内存管理
虚拟内存、内核空间和用户空间Linux简化了分段机制,使得虚拟地址与线性地址总是一致。在32位平台上,线性地址的大小位4GB,也即是虚拟空间的大小。Linux内核将这4GB的空间分为两部分。内核空间: 最高的1GB(0xC0000000–0xFFFFFFFF),供内核使用。用户空间(地址空间): 较低的3GB(0x00000000–0xBFFFFFFF),供进程使用。从具体进程的角度来看,每个进程可以拥有4GB的虚拟地址空间,因为每个进程可以通过系统调用进入内核,共享内核空间。用户空间不是被进程
2020-11-18 17:53:36
218
原创 初识RPC框架+JAVA实现
RPC是什么?RPC是远程过程调用(Remote Procedure Call)的缩写形式。当我们需要在客户机本地调用远程服务器的方法时,RPC的作用就体现出来。RPC的处理过程是怎样的?假设有一台客户机C(Client),想要调用远程服务器S(Server)的天气服务(Weather).如果这个服务是在C本地已经存在的话,我们可以直接使用Weather wt = new Weather();wt.getService();方式来获取服务,但是此时这个天气服务的对象并不存在于本地,即客户机本地不
2020-11-01 16:53:00
362
原创 JAVA实现哈夫曼编码
任务1:对已知字符及其权值(频率)创建哈夫曼树并可以打印出每个字符的哈夫曼编码值任务2:从控制台输入一个字符串,计算出字符的权值,转换为任务一实现过程:在哈夫曼树中,所有字符节点都作为叶节点,具有字符内容和频率的属性;将字符节点合成树后,具有左右节点的属性。所以可以创建出Node节点类:class Node{ Node left;//根节点 Node right;//根节点 String str;//此节点的字符 int weight;//权值或频率 }构造哈夫曼树:1.将
2020-07-25 22:11:04
1424
原创 《第一行代码第2版》学习SQLite时,adb 使用时无法进入超级管理员的解决方法
第一种方法链接第二种方法就是去网上下载其他的模拟器,其能够使用android 7.0以下的版本或者提供root权限。我使用的是蓝叠模拟器,下载链接。按书上配置好adb的环境变量之后,在模拟器中设置root权限。然后在命令行中就可以进入超级管理员,并成功查看测试时创建的数据库。...
2020-05-09 16:29:02
351
原创 Android常用控件与布局
Android常用控件与布局View的概念常用控件常用布局控件与布局美化View的概念Android 应用的绝大部分UI组件都放在android.widget包和android.view包中。View是用户界面组件的共同父类,几乎所有的用户界面组件都是继承View类而实现的,如TextView、Button、EditText等。对View类及其子类的属性进行设置,可以在布局文件XML中设...
2020-03-31 21:22:51
1426
1
原创 《深入理解计算机系统》第八章--异常控制流
异常异常是异常控制流的一种,一部分由硬件实现,一部分由操作系统实现。异常(exception)就是控制流的突变,用来响应处理器状态的某些变化。状态变化又叫做事件(event)。事件可能与当前执行指令有关 :存储器缺页,算数溢出除0也可能与当前执行指令无关 :I/O请求定时器产生信号通过异常表(exception table)的跳转表,进行一个间接过程调用,到专门设计处理...
2019-12-09 01:46:37
882
转载 《深入理解计算机系统》第十章系统及I/O
Unix I/O所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。这种将设备优雅第映射为文件的方式,允许Linux内核引出一个简单、低级的应用接口,称为Unix I/O,这使得所有的输入/输出都能以一种统一且一致的方式来执行:1.打开文件在使用文件之前需要通知内核打开该文件:int fd; // 文件描述符 file descri...
2019-12-08 23:57:04
306
原创 《深入理解计算机系统》第七章--链接
链接是将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可被加载到内存并执行。现代系统中,链接是由连接器自动执行的。链接使得软件开发的过程模块化,具有更高的效率。编译器驱动程序main.cint sum(int *a, int n);int array[2] = {1, 2};int main() { int val = sum(array, 2); re...
2019-12-08 23:36:42
488
原创 JAVA学习日志之门格海绵
门格海绵的结构可以用以下方法形象化:从一个正方体开始。(第一个图像)把正方体的每一个面分成9个正方形。这将把正方体分成27个小正方体,像魔方一样。把每一面的中间的正方体去掉,把最中心的正方体也去掉,留下20个正方体(第二个图像)。把每一个留下的小正方体都重复第1-3个步骤。把以上的步骤重复无穷多次以后,得到的图形就是门格海绵。实际写代码的时候思路是将一个门格海绵分为三层绘制,解析图如...
2019-07-17 17:04:05
1770
原创 JAVA学习日志之画图板重绘
画板类的代码:package 画图板重绘;import java.awt.FlowLayout;import java.awt.Graphics;import javax.swing.JButton;import javax.swing.JFrame;//画板类public class Huaban { Graphics g; public static void main...
2019-07-06 17:04:38
273
原创 JAVA学习日志之访问修饰符
访问修饰符访问修饰符是指在编写程序中的方法或属性的过程中,对方法或属性强加的限定符。访问修饰符可以决定在什么样的情况下程序能够访问(使用)这些属性或方法,什么情况下不能访问。访问修饰符的出现,提高了JAVA程序的安全性,灵活使用访问修饰符,可以避免代码滥用、访问越界,有效控制程序结构。方法及属性的访问修饰符private——私有权限private修饰符可以修饰类的数据成员和方法成员...
2019-07-04 21:09:29
205
原创 JAVA学习日志之接口
面向对象的特点主要概括为抽象性、继承性、封装性、多态性抽象性——指对现实世界中某一类实体或事件进行抽象,从中提取共同信息,找出共同规律,反过来又把它们集中在一个集合中,定义为所设计目标系统中的对象。继承性——新的对象类由继承原有对象类的某些特性或全部特性而产生出来,派生类可以直接继承基类的共性,又允许派生类发展自己的个性。继承性简化了对新的对象类的设计。封装性——指对象的使用者通过预先定义...
2019-07-03 19:57:57
367
原创 JAVA学习日志之抽象类
抽象类由abstract定义,抽象类中的abstract方法未实现,没有方法体,在子类中需要完成方法体来使用如果一个类是一个abstract类的子类,它必须具体实现父类的abstract方法,否则子类也是抽象类。如果一个类中含有abstract方法,那么这个类必须用abstract来修饰(abstract类也可以没有abstract方法)。一个abstract类只关心它的子类是否具有某种功...
2019-07-03 17:35:55
284
原创 JAVA学习日志之final关键字
final放在类前,则该类不能被继承,且该类的方法会默认被加上final修饰符,即所有方法不能被重写。如果仅仅是希望类中的某个方法不能被重写的话,只需要在该方法前加上final。final修饰属性和变量,则表示其值不能被修改。...
2019-07-03 17:21:42
164
原创 JAVA学习日志之画三角形
先看代码:import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;public class Dwpad implements MouseListener{ int X1,X2,X3,X4,X5,Y1,Y2,Y3,Y4,Y5; Graphics g; i...
2019-06-23 18:17:31
794
原创 JAVA学习日志之super关键字
在某些时候子类需要调用父类的方法,如下例。//计算器public class Calculator{ public void play(){ System.out.println("完成四则运算功能"); this.print(); } public void print(){ System.out.println("显示结果"); }}//计算机public c...
2019-06-23 16:08:28
131
原创 JAVA学习日志之继承与多态
一.什么是继承当我们看到在公路上行驶的某类品牌的汽车时,可以知道它们是由相同的生产方式生产出来的,仅仅是一些部件不同,不同的车子性能因而不同。当设计生产线软件的时候,我们可以优先考虑设计一个统一的车模,车模具有所有汽车的共有属性,如车轮、发动机、底盘、方向盘等,这样生产的汽车是一辆非常普通的汽车。如果要生产更高级一点的汽车,例如赛车,需要重新定制车模吗?当然不需要,只需要修改原有车模就可以了,把...
2019-06-20 21:43:04
182
原创 JAVA学习日志之画图板
画图板ActionListener (接口,动作监听器,有一个抽象方法)实现接口的方式:用我们自己写的类去实现接口重写接口中未实现的抽象方法界面 JFrame -顶级容器Graphics (图形) —画笔/画布 可以让我们的程序在屏幕上绘制MouseListener -鼠标监听器 (有五个抽象方法) 都需要重写 不管这个抽象方法有没有用到实现一个画图板的步骤·实现一个画图板...
2019-06-16 16:38:15
215
原创 JAVA学习日志之类与对象(2)
在一个类中,如果没有定义构造方法,则都默认隐式声明了一个无参数的构造方法,在创建对象的时候,new后面调用的就是构造方法。public class Student{ }//无参数构造器方法public Student{ }构造方法与一般方法的区别:构造方法的名字必须和类名一样构造方法不用声明返回值类型构造方法一定有返回值,返回值的类型就是方法名,因为构造方法的名字就是一个类的...
2019-06-09 17:53:43
162
原创 JAVA学习日志之登录界面的创建
一个界面是一个JFrame对象,即一个窗体;创立了窗体之后,就可以在窗体上放置其他组件。1.界面测试import javax.swing.JFrame;public class JFrameTest { //程序入口 public static void main (String args[]){ JFrameTest tf = new JFrameTest(); tf.sho...
2019-06-08 17:52:19
249
原创 JAVA学习日志之类与对象(1)
面向对象的编程是将现实生活中的概念通过程序进行模拟。其中有两个重要的概念:类、对象。对象具有属性(特征)与行为方法(行为),指某一具体事物。而同一类事物具有共性,对这些共性的归纳就是类。即类是对象的抽象模板、对象是类的具体实例。类的创建: 关键字 class格式: public class 类名{ }类的属性定义:格式: public 属性类型 属性名;类的方法定义:格式: ...
2019-06-07 23:14:19
249
原创 locate代码程序的运行
代码为:#include <stdlib.h>#include <stdio.h>#include <unistd.h>static void show_pointer(void *p, char *descr) { // printf("Pointer for %s at %p\n", descr, p); printf("%s...
2019-05-31 21:19:36
188
原创 runaway代码程序的运行与解释
代码为:/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>int recurse(int x) { int a[1<<15]; /* 4 * 2^15 = 64 KiB */ printf("x = %d. a at %p\n", x, a); ...
2019-05-31 21:13:24
570
原创 bufdemo代码程序的运行与解释
代码为:/* Demonstration of buffer overflow */#include <stdio.h>#include <stdlib.h>/* Implementation of library function gets() */char *gets(char *dest){ int c = getchar(); char *p ...
2019-05-30 13:31:21
162
原创 show_bytes代码程序的运行与解释
代码为:#include <stdio.h>/* $end show-bytes */#include <stdlib.h>#include <string.h>/* $begin show-bytes */typedef unsigned char *byte_pointer;//typedef char *byte_pointer;//ty...
2019-05-30 13:16:30
725
原创 fsum代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256int main(int argc, char *argv[]) { char prefix[BUFSIZE]; char next[BUFSIZE]; int i; ...
2019-05-30 12:40:53
575
原创 hefixy.c代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {int i;for (i = 1; i < argc; i++) {unsigned long dig = strtoul(argv[i], NULL, 16);putchar((char) dig);}...
2019-05-29 00:12:36
154
原创 sq.c代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>int sq(int x){return x*x;}int main(int argc, char *argv[]){int i;for(i=1;i<argc;i++){ int x = atoi(argv[i]);int sx = sq(x);printf(...
2019-05-28 20:35:50
532
原创 struct.c代码程序的运行与解释
代码文件为:#include <stdio.h>#include <stdlib.h>typedef struct {int a[2];double d;} struct_t;double fun(int i) {volatile struct_t s;s.d = 3.14;s.a[i] = 1073741824; /* Possibly out of ...
2019-05-28 20:05:54
289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人