自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 PAT甲级1033 To Fill or Not to Fill (贪心算法)

一辆车从杭州出发,前往目的地,途径若干个加油站,若能到达目的地,输出加油所花费的钱,若不能,输出能到达的最大距离。本题的核心思想就是尽量使用最便宜的油行驶。所以我们建立一个数组cheapSta[500],建立递归函数Travel()。路线既然确定好了,那么我们需要判断汽车怎么加油。注意:汽车开始时油箱没有油,若没有距离为0的加油站,直接输出最大距离0.00。这个数组也代表了行驶线路。

2025-02-06 13:05:50 223

原创 P1009 阶乘之和(大数计算)

i–){//输出结果。while(j>=0){ //如果a中的数加完了。while(i>=0){ //如果b中的数加完了。if®{//判断最高位有没有进位。//高精度减法(两个数)

2025-02-06 13:02:22 354

原创 LPC2214 SPI及UART初始化程序_lpc2214 串口0

/只允许RBR中断(即接收中断和接收FIFO超时中断)//只允许RBR中断(即接收中断和接收FIFO超时中断)U0LCR = 0x03;//DLAB =0,才允许访问U0RBR和U0THR。// 设置SPI接口模式,MSTR=1,CPOL=0,CPHA=0,LSBF=0。while(U0LSR & 0x01) //读数据,直到FIFO为空。if( 0x04==(U0IIR&0x0E) ) // RDA标志。else if(0x0C==(U0IIR&0x0E) ) // CTI标志。

2025-02-06 03:04:55 400

原创 lodash-es 工具库常用工具函数和案例详解

Lodash中文文档Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库,算是从Underscore分离出来的超集。Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。遍历 array、object 和 string对值进行操作和检测创建符合功能的函数lodash为了良好的浏览器兼容性,它使用了旧版 es5 的模块语法;而lodash-es。

2025-02-06 03:03:12 1003

原创 js去除空格12种方法_js strip

但只要正则 不过于复杂,我们就可以利用浏览器对正则的优化,改善程序执行效率,如实现8在IE的表现。实现11可谓其改进版,前面部分的空白由正则替换负责砍掉,后面用原生方法处理,效果不逊 于原版,但速度都是非常逆天。它先是把可能的空白符全部列出来,在第一次遍历中砍掉前面的空白,第二次砍掉后面的空白。速度快得惊人,估计直逼上内部的二进制实现,并且在 IE与火狐(其他浏览器当然也毫无疑问)都有良好的表现。看起来不怎么样, 动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化。顶替了*,效果非常惊人。

2025-02-05 23:05:47 570

原创 JSON必知必会 学习笔记_json first account

JSON Schema数据交换中的一种虚拟合同,负责提供一致性验证。是负责数据接收第一道防线,也是数据发送方节约时间,保证数据正确的好工具JSON Schema在第一个键值对中声明$schema,并给定校验的地址。第二个键值对为JSON Schema的标题,第三个就是我们要定义的一些属性了。下面是一个猫的schema文件。JSON Schema可以解决下列一致性验证的问题通过对属性字段进行约束来达到对数据的约束,同时还可以通过required属性来确定需要的数据,以及确定数据格式。

2025-02-05 23:04:09 545

原创 Java之IO简述 第一篇——File类_new file java

Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。下面介绍IO下的重要类之一 File。

2025-02-05 18:27:02 826

原创 Java中的访问权限控制

当编译一个.java文件时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀.class。因此,在编译少量.java文件之后,会得到大量的.class文件。使用关键字public就意味着public之后跟随着的成员声明自己对每个人都是可用的,被public修饰的类、属性、及方法不仅可以跨类访问,而且可以跨包访问。此时假如MyClass类是在某一个类库中的类,当我们想要调用时就必须使用关键字import来使库的名称可用,或者给出完整的名称。

2025-02-05 18:25:13 1003

原创 JavaScript中的函数参数详解

或者说,当你定义的函数只接收两个参数,然而调用函数的时候你可以不传入参数,或着传入一个参数,两个参数,三个参数等等都是可以的。实际上,JavaScript函数的参数在内部是用一个数组来表示的,函数想接收参数的时候,始终接收到的是这个数组。实际上,在函数体内,可以通过arguments对象访问这个参数数组,第一个元素是arguments[0],第二个元素是arguments[1],以此类推。4.还应注意一点,arguments对象的长度是由传入的参数的个数来决定的,而不是由定义函数时命名参数的个数来决定。

2025-02-05 16:48:59 283

原创 Javascript中没有块级作用域(模仿)_js的if语句会形成块级作用域吗

/ js : () 表示执行。alert(‘函数’);

2025-02-05 16:47:15 140

原创 Eclipse+Java+Swing+Mysql实现超市管理系统

JOptionPane.showMessageDialog(null, “请完整输入要修改的数据”);Object[] header = { “商品编号”, “商品名称”, “数量”, “单价” };private JButton okbtn = new JButton(“登录”);JButton button_1 = new JButton(“显示所有商品”);JButton button_2 = new JButton(“修改商品”);

2025-02-04 15:02:59 815

原创 Echarts饼状图属性设置大全_echarts radius

【代码】Echarts饼状图属性设置大全_echarts radius。

2025-02-04 15:01:15 379

原创 BIO,NIO,AIO的区别(迄今为止讲的最清楚的)

在计算机里,是没有人这么灵活的,一般在阻塞时,选在干等,因为这最容易实现,只需要挂起线程,让出CPU即可。注:一定要去体会“多个事物”,多个线程是多个事物,多个方法是多个事物,多个语句是多个事物,多个CPU指令是多个事物。因此,在IO上,同步和非阻塞是互斥的,所以不存在同步非阻塞IO。因此,可以认为,同步更希望关注的是从宏观整体来看,多个事物是一种逐个逐个的串行化关系,绝对不会出现交叉的情况。在等待数据的过程中,线程采用死循环式轮询,在拷贝数据的过程中,线程在阻塞,这其实还是同步阻塞IO。

2025-02-04 10:45:16 565

原创 BIO,NIO,AIO的区别(迄今为止讲的最清楚的)(1)

在计算机里,是没有人这么灵活的,一般在阻塞时,选在干等,因为这最容易实现,只需要挂起线程,让出CPU即可。注:一定要去体会“多个事物”,多个线程是多个事物,多个方法是多个事物,多个语句是多个事物,多个CPU指令是多个事物。非阻塞IO就是用户线程不参与以上两个过程,即数据已经拷贝到用户空间后,才去通知用户线程,一上来就可以直接操作数据了。因此,在IO上,同步和非阻塞是互斥的,所以不存在同步非阻塞IO。在等待数据的过程中,线程采用死循环式轮询,在拷贝数据的过程中,线程在阻塞,这其实还是同步阻塞IO。

2025-02-04 10:43:34 928

原创 Android 面试必备 - 系统、App、Activity 启动过程

从系统层看:linux 系统层Android系统服务层Zygote从开机启动到Home Launcher:启动bootloader (小程序;初始化硬件)加载系统内核 (先进入实模式代码在进入保护模式代码)启动init进程(用户级进程 ,进程号为1)启动Zygote进程(初始化Dalvik VM等)启动Runtime进程启动本地服务(system service)启动 HomeLauncher。

2025-02-04 05:11:01 661

原创 Android 面试 开源库面试题_开源试题

/如果不在主线程或者Android SDK的版本低于HONEYCOMB,传入的还是Application类型的context。//如果不在主线程或者Android SDK的版本低于HONEYCOMB,传入的还是Application类型的context。// 的判断到达 StreamAllocation 中的 findConnection() 方法。// 和请求之间的关系,该类还会初始化一个 Socket 连接对象,获取输入/输出流对象。// 内部调用 cleanup() 方法来清理无效的连接。

2025-02-04 05:09:19 558

原创 Android --- 怎么把其他类型的数据转换成 Json 字符串

String json = “[{“username”:“张三”,“pwd”:“123456”},{“username”:“李四”,“pwd”:“678910”}]”;String json = “{“username”:“张三”,“pwd”:“123456”}”;// obj 代表各种数据类型。// 将 json 转成复杂类型的 bean,需要使用 TypeToken。// 将 json 转成 List。

2025-02-03 18:46:53 358

原创 sass 公用10个mixins代码块

作为@media (min-width: 600px)等代码的替代,它使用了更有语义的名称形式,如“breakpoint-large”或“breakpoint-a-really-large-computer-machine”。由于rem在设置元素尺寸的时候是相对于HTML根元素的尺寸,而不是他的父元素的设置,因此在使用上不会发生混乱的情况。在网上有各种不同的clearfix hacks方法。这里使用的方法是由Nicolas Gallagher设计的,这种清除浮动的方法能兼容IE6+的浏览器。

2025-02-03 09:11:42 722

原创 RxJava零基础入门(二)

其二,“一千个读者有一千个哈姆雷特”,我所看到的并不是全部,也许你会发掘出更有意思的东西可不是?(注意跟AsyncSubject的区别,AsyncSubject要手动调用onCompleted(),且它的Observer会接收到onCompleted()前发送的最后一个数据,之后不会再接收数据,而BehaviorSubject不需手动调用onCompleted(),它的Observer接收的是BehaviorSubject被订阅前发送的最后一个数据,两个的分界点不一样,且之后还会继续接收数据。

2025-02-03 09:09:58 301

原创 LeetCode琅琊榜-第一层(荷兰国旗问题)

题目的解法是以快速排序的基础上建立起来的,然而,在我的观点看来,这可以独立成一个区间问题,以后凡是遇到区间问题都可以借鉴该算法,我来总结该算法的核心掌握内容。

2025-02-02 01:12:56 356

原创 Leetcode数组简单题

这道题就是返回数组中元素个数超过一般的元素,最开始的思想就是暴力双for循环比较,感觉自己太笨了,什么都是双for,直接将时间复杂度拉满,只超过5%的用户。之后想了半天从前面排了很久,也没排好主要不想建立一个新的数组,就去看了官方的题解,竟然从后往前找,逆向思维,太牛了!最后才发现这题是摩尔投票法,核心就是对撞互拼,挺有趣的 ,在评论区看见一个大神写的双百做法,挺巧妙的。这道题我先看了看,想了一个偷懒的办法,就是将第二个数组放到第一个数组0元素的位置,之后将数组排序。//交换位置 或者返回长度位置。

2025-02-02 01:11:11 504

原创 cadence virtuoso 初入门,从安装到跑通反相器

Cell 栏填写文件名(例如inv01),type用于选择创建的文件类型,schematic是原理图,layout为版图。接下来,还需我们工程对应的工艺库,这个有很多选择,但是安装方式往往模糊不清,各大论坛也只能搜到只言片语或“仅限会员”。文中采用的系统与我们这里的不同,但安装流程通用,且文章第一部分提到的字体安装可以省略,在后面提到的报错我们也不会出现。PS:如果稍微破费,可能由专人指导会效果更好,但本着能省就省的原则,可以试试看。在 New File 界面中,填写文件名字,文件类型,等。

2025-01-31 09:30:24 468

原创 c++面试常见问题汇总

new操作针对数据类型的处理,分为两种情况:(1) 简单数据类型(包括基本数据类型和不需要构造函数的类型)(2)复杂数据类型(需要由构造函数初始化对象)delete也分为两种情况:(1) 简单数据类型(包括基本数据类型和不需要析构函数的类型)(2)复杂数据类型(需要由析构函数销毁对象)从原理上来分析可以看看这篇博客:C++ new和delete的实现原理与 malloc 和 free 的区别:(1)new / delete 是c++关键字,需要编译器支持。 malloc/free是库函数,需要c的头文件支持

2025-01-31 09:26:54 1054

原创 Android技术分享 一行代码实现安卓屏幕采集编码_virtual_display_flag_own_content_only

在 createVirtualDisplay 方法中,有一个 Surface 参数,屏幕上的所有动作,都会映射到这个 Surface 中,这里我们使用 MediaCodec 创建一个输入Surface用来接收屏幕的输出并编码。在 startProjection 方法中,我们需要获取 MediaProjectionManager,再获取 MediaProjection,接着创建一个虚拟显示屏。以上进行了一些常规的配置,MediaFormat 可以为编码器设置一些参数,比如码率,帧率,关键帧 间隔等。

2025-01-26 18:58:08 186

原创 Android开发adb命令和闪退日志_adb闪退

操作闪退步骤后,输出干净的闪退日志:adb logcat -b crash >error.txt。app出现anr时会在data/anr目录下生成traces.txt文件。Android分三种闪退情况,均可用adb命令输出crash日志。ctrl +F 搜索 force finishing查看闪退的日志。traces.txt文件里存放设备所有app的anr日志。先清除之前的日志:adb logcat -c。开始抓取日志并保存到D盘的crash.txt。ctrl +C 停止抓取。打开日志文件,搜索包名。

2025-01-26 18:56:07 555

原创 Node 服务端系统架构设计基本思想及常见场景解决方案

所谓单点,也就是系统内某个服务只有一个节点,比如我们的node应用,此时如果程序崩溃或服务器宕机,则系统整体对外表现为不可用,于是形成了单点故障系统可以持久的保持对外正常的服务node服务发布时往往需要停止服务,再以新的代码重新启动服务,在此期间如果系统仍可以保持对外的正常服务,则称为平滑发布。

2025-01-24 00:58:38 694

原创 Mac 系统占用100G+解决办法(详细步骤)

第一名:iOS.simruntime 10.29 GB (iOS 日常开发需要使用,勿删)第二名:watchOS.simruntime 7.05 GB (不做 watch 开发可以删除)第三名:tvOS.simruntime 5.39 GB (不做 tv 开发可以删除)// iOS.simruntime 路径(勿删)// watchOS.simruntime 路径(可选)// tvOS.simruntime 路径(可选)我这里删掉这几个文件之后,直接变成20G。

2025-01-23 23:20:30 1220

原创 KMP算法解决字符串匹配问题(详细步骤图解)

比如ABCDABD,ABCD的匹配值均为0,但是A与前缀ABCD中的A相同,故匹配值为1,AB与前缀ABCD中的AB相同,故B的匹配值为2,ABD没有与之相同的前缀,故D为0。KMP算法利用之前判断过信息,通过一个next数组,保存模式串中前后最长公共子序列的长度,每次回溯时,通过next数组找到,前面匹配过的位置,省去了大量的计算时间。9.因为空格与C不匹配,搜索词继续向后移动,这时,已匹配的字符数为2(“AB”)对应的部分匹配值为0,所以移动为数=2-0,结果为2,于是将搜索词向后移2位。

2025-01-23 21:57:07 883

原创 java之StringBuilder和关于数组怎么扩容_srting数组的扩容

注意一下,其实StringBuffer和StringBuilder基本用法是一模一样的,可变字符序列,StringBuffer和StringBuilder;一个Eclipse的快捷键;Ctrl+T 快速显示当前类的继承结构。线程不安全,效率高,我们一般使用他。线程安全但是效率不高。String是不可变字符序列。注意一下两者的区别。

2025-01-23 17:55:48 161

原创 Java String的常用方法

System.out.println(s.replaceAll( “.” , “#” ));System.out.println(s.replaceFirst( “.” , “#” ));//结果:my#test#txt############y.test.txtreplaceAll、replaceFirst的参数是regex,即用的是正则表达式,“.”是正则表达式的元字符,匹配除换行符以外的任意字符。3.CompareTo()方法===============//1.对于单个字符,返还两个字符的asc

2025-01-23 16:33:35 587

原创 Go分布式爬虫笔记(五)_golang分布式爬虫架构

维护一个待爬取url的channel, 每次从一个网页上获取到下一级的url就加入到这个channel中。同时, channel的另一侧读取channel, 待爬取url channel 不为空时就读取url并启动一个新的协程去爬取对应url 并解析返回内容。如果 STW 时间过长,或者并发标记阶段由于频繁的内存分配触发了辅助标记,都会导致程序无法有效处理用户协程,产生严重的响应超时问题。例如,之前介绍过的将环境变量 GOMAXPROC 调整为更合适的大小,本质上就是在修改运行时可并行的线程数量。

2025-01-23 15:05:16 1672

原创 ES6 新特性 ES6使用 超实用

every用于遍历数组,只有当所有的元素返回 true,才返回 true,否则返回 false,每个元素执行完 function 返回的结果做一个 && 运算,全为 true 结果才是 true。返回一个新数组,如果在回调函数中返回 true,那么就留下来,如果返回 false,就扔掉,因此返回的数组的长度和原数组的长度不一定一致。//返回值:布尔类型的值,只有当所有的元素返回true,才返回true,否则返回false。//返回值:布尔类型的值,只要有一个回调函数返回true,就返回true。

2025-01-23 01:24:25 830

原创 C语言 宏 assert()_#define assert(y)

assert()宏接受一个整形表达式参数。如果表达式的值为假,assert()宏就会调用_assert函数在标准错误流中打印一条错误信息,并调用abort()(abort()函数的原型在stdlib.h头文件中)函数终止程序。当我们认为已经排除了程序的bug时,就可以把宏定义#define NDEBUG写在包含assert.h位置前面。小知识:__cdecl是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈。

2025-01-22 23:55:58 976

原创 Ansible之Playbook

运行playbookabsible-playbook命令可用于运行playbook。该命令在控制节点上执行,要运行的playbook的名称则作为参数传递。[root@master lamp]# ansible-playbook /opt/lamp/user.yml //我们在执行的时候, 文件在哪里,我们就要去指定它的路径,然后进行执行在运行playbook时,将生成输出来显示所执行的play和任务。输出中也会报告执行的每一项任务的结果。

2025-01-22 22:17:58 454

原创 Android应用--简、美音乐播放器添加电话监听

那好,继续完善小巫的简、美音乐播放器,因为一个好的应用软件应该考虑到各种情况,就那音乐播放器来说,如果播放音乐过程中,来了一个电话,可能是“永远不会打电话给你的人”,如果这时候你的音乐还在后台悠哉的播放,我想你会疯掉的,永远不会打电话给你的人可能真的永远不打了。这里只是开个玩笑,所以呢,要考虑到这种情况,只要来电了,那么播放器应该能暂停一下,好让你好好打个电话。在贴电话状态监听功能代码之前,把AppConstant这个类也贴一下,这个只是用来存放播放控制信息的,有网友说要看看,所以在这里贴一下吧。

2025-01-22 20:57:36 268

原创 Android 天气APP(三十二)快捷切换常用城市

这里先查询数据,然后判断数据,之后渲染数据,最后是点击item之后搜索城市,然后查找天气数据。其次就是在接收事件的时候再加载一次数据,因为我在常用城市中添加数据之后会发起事件,然后关闭常用城市页面,回到主页面,此时需要把数据加载一下,后面会演示一下。//该地区/城市的上级城市。最后在tv_city的点击事件中先判断当前城市是否定位到,定位到则判断有无数据,有数据则可以判断点击后不同的控件样式。因为我是点击城市触发常用城市列表的判断处理,因此之前的代码需要修改一下,有两处,在initData中。

2025-01-22 19:35:25 847

原创 c++介绍与入门基础(详细总结)

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间的名字,一般开发中是用项目名字做命名空间名。1.正常的命名空间定义//命名空间中可以定义变量/函数/类型intval;2.命名空间可以嵌套intval;inta;intb;3.同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。通过预处理后,文件test.h与test.c都将展开。

2025-01-20 16:01:15 1014

原创 app_actionLayout定义的menu不能触发onOptionsItemSelected (2)

定义的menu未自动设置点击事件,所以不会触发,需要额外设置点击事件监听器。,同时对其设置点击事件从而触发了Activity中的。,此方法设置了一个mItemInvoker,在xml文件的item标签中如果设置了了。并不会调用这个方法。则不会执行到if语句里。最终会调用到Activity中的。标签定义的menu最终生成一个。方法,这是个抽象方法,实现在。

2025-01-20 15:26:53 571

原创 android进阶篇02、RecyclerView回收复用机制源码解析

RecycledViewPool如下所示,先看注释2处的内部类ScrapData,注释3处的mScrapHeap就是缓存ViewHolder的ArrayList,注释4处表示最大容量为5,即可以缓存ViewHolder的个数为5;注释3就是二级缓存,注释4处的mViewCacheMax表示二级缓存的最大容量为2;如下所示,注释1处表示又会调用fill方法,官方注释表示这是一个神奇的方法,回收与复用共同的入口;注释1和注释2处分别表示从start和end回收,原理都是相同的,这里我们以注释1举例;

2025-01-20 14:58:02 842

原创 Android字体概述

staticTypefacecreateFromAsset(AssetManagermgr,Stringpath)//静态方法,参数一为AssetManager对象,主要用于从APK的assets文件夹中取出字体,参数二为相对于Android工程下的assets文件夹中的外挂字体文件的路径。staticTypefacecreate(Typefacefamily,intstyle)//静态方法,参数一为字体类型这里是Typeface的静态定义,如宋体,参数二风格,如粗体,斜体。

2025-01-20 14:13:12 350

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除