摘要: 场景:当页面滚动超过一定距离后,显示回到顶部的按钮,点击按钮平滑滚动回顶部。 实现:监听页面滚动距离,与一特定值比较,控制按钮显示隐藏,点击按钮点用页面平滑滚动Api或者通过自定动画实现滚动。 存在问题:惯性滚动在页面返回顶部后并未结束,导致继续滚行下滑,使得页面无法停留在置顶状态。 解决方法:未找 阅读全文
posted @ 2020-10-09 19:10 FirstLetterZ 阅读(844) 评论(0) 推荐(0)
摘要: 由于ResponseBody内的bytes()、string()方法调用了closeQuietly方法,此方法会将ResponseBody内的数据源清除,所以仅获取一次内容。 解决方案: BufferedSource source = body.source(); source.request(Lo 阅读全文
posted @ 2020-10-09 19:08 FirstLetterZ 阅读(416) 评论(0) 推荐(0)
摘要: 一、事件从Kernel层传递到Framework层 准备工作:WindowManagerService首先通过native方法创建InputManager,InputManager调用Kernel层的InputSystem创建EventHub、InputReader和InputDispatcher。 阅读全文
posted @ 2020-10-09 18:59 FirstLetterZ 阅读(317) 评论(0) 推荐(0)
摘要: 一、数据在内存中的位置 Dalvik内存数据保存在6个位置上: 寄存器:位于处理器内部;速度最快,开发人员没有直接控制权。 栈:位于RAM,速度仅次于“寄存器”;使用的是一级缓存,需要在创建的之前知道占用的内存大小和存活时间;存放引用,实际数据存在堆中; 他们通常都是被调用时处于存储空间中,调用完毕 阅读全文
posted @ 2020-10-09 18:54 FirstLetterZ 阅读(244) 评论(0) 推荐(0)
摘要: equals方法来自于Object.class,在没有被覆写的情况下等同于“==”。 Object.class--171行: 覆写时必须遵守通用约定: 自反性:对于任何非null的引用值x,x.equals(x)必须返回true。 对称性:对于任何非null的引用值x、y,当且仅当x.equals( 阅读全文
posted @ 2020-10-09 18:51 FirstLetterZ 阅读(438) 评论(0) 推荐(0)
摘要: 原本使用数据库的时候,需要根据存储字段建立对应表和列,以及对应增删改查逻辑。于是便想要找到一种方法,只创建一次数据库表格,并且今后的增删改查都用一套逻辑完成。后来想到了将列与数据字段的对应关系放在数据模型之中,这样每一列只关心保存的数据类就可以了。 首先需要了解一下三个关键注解: @SQLiteCl 阅读全文
posted @ 2020-10-09 18:50 FirstLetterZ 阅读(135) 评论(0) 推荐(0)
摘要: 以下内容基于Android Api 28 。 ConcurrentHashMap中,数据实际存储在其内部的Node数组table之中。保存数据时,实际调用putVal(K key, V value, boolean onlyIfAbsent)方法。 final V putVal(K key, V v 阅读全文
posted @ 2020-10-09 18:38 FirstLetterZ 阅读(424) 评论(0) 推荐(0)
摘要: 在主工程中使用tools:node="remove"标记移除项,如下: 阅读全文
posted @ 2020-10-09 18:36 FirstLetterZ 阅读(1274) 评论(0) 推荐(2)
摘要: 主要思路:为避免递归函数的参数、状态积压在栈上,最终耗尽栈空间,参考了cps变换实现的思路。网上给出的cps尾调用,尾递归形成的链式函数,实质上就是返回部分结果和下一循环要执行的方法,个人感觉在阅读性和抽象能力不够友好,所以,改为记录部分结果,以及下一循环的节点值。 import android.s 阅读全文
posted @ 2020-10-09 18:28 FirstLetterZ 阅读(186) 评论(0) 推荐(0)
摘要: Future本身是一个接口,提供取消、查询取消、查询完成、获取结果、设置超时获取结果五个接口方法;默认提供了PendingFuture<V, A>、SwingWorker<T, V>、ForkJoinTask、CompletedFuture、FutureTask五种实现;也可以使用ExecutorS 阅读全文
posted @ 2020-10-09 18:25 FirstLetterZ 阅读(205) 评论(0) 推荐(0)
摘要: 互斥条件:同一时间,同一资源,只能为一个线程锁持有,其他资源请求资源只能等待持有者释放; 请求和保持:线程请求其他资源时,其他资源已被持有,在等待资源释放的过程中,线程不会释放自己持有的资源; 不可剥夺:线程获得的资源在其使用完成前,不会被释放; 环路等待:多个线程之间对其他线程持有对资源等待释放; 阅读全文
posted @ 2020-10-09 18:16 FirstLetterZ 阅读(104) 评论(0) 推荐(0)
摘要: finally中包含return,最终返回finally中return的结果。 下面代码结果为4: int a = 1; try { a = 2; return a; } catch (Exception e) { a = 3; return a; } finally { a = 4; return 阅读全文
posted @ 2020-10-09 18:15 FirstLetterZ 阅读(81) 评论(0) 推荐(0)
摘要: 调用Bundle内的getInt、getDouble等方法时,实际为调用内部Map的get方法,若值为null,返回默认值,否则将值强转为对应类型,失败则返回默认值。 在kotlin时,Map中获得的值如果不是数字类型,则强转一定失败,永远都返回默认值。解决如下:bundle.get("name") 阅读全文
posted @ 2020-10-09 18:12 FirstLetterZ 阅读(390) 评论(0) 推荐(0)
摘要: clone不调用构造函数,new调用构造函数; clone通过深拷贝或浅拷贝复制原对象属性值,new在执行构造函数和对象初始化的时候对属性赋值。 性能上面对差别主要在构造函数对耗时,若构造函数简单则new方法耗时更少(例如,只进行几个属性字段的初始赋值),若构造函数内有耗时操作(例如,需要大量计算, 阅读全文
posted @ 2020-10-09 17:50 FirstLetterZ 阅读(388) 评论(0) 推荐(0)
摘要: 调用对应Class的getDeclaredField或getField方法,获取要修改的Filed; 2个方法的差别在于: getDeclaredField可获取当前Class内所有变量名(private,protect,public,friend),但不会获取父类变量; getField可获取当前 阅读全文
posted @ 2020-10-09 17:49 FirstLetterZ 阅读(1952) 评论(0) 推荐(0)
摘要: 正常情况下直接使用 BigDecimal stripTrailingZeros()方式即可,但是,当数值等于0时,方法不再生效。原因在于其内部作了判断 if (isZero()) { // Preserve RI compatibility, so BigDecimal.equals (which 阅读全文
posted @ 2020-10-09 17:48 FirstLetterZ 阅读(1205) 评论(0) 推荐(0)
摘要: 该方法会立刻停止线程运行,放弃所有未执行的代码,包括在 catch 或 finally 语句中的,因此可能会导致任务清理工作无法完成,如文件流,数据库指针等的关闭。 该方法会释放该线程所有的资源监视器,由于任务执行成都不可知,导致该线程所持有的资源状态不确定,可能出现数据不一致的问题。 如何正确停止 阅读全文
posted @ 2020-10-09 17:32 FirstLetterZ 阅读(284) 评论(0) 推荐(0)
摘要: 条件: 多线程同时保存数据,同时触发HashMap扩容; 存在某一节点上的链表内至少2个节点在新算的位置上相同; 原因: 1.7 HashMap采用头插法,以至于存入顺序与读取(保存链表内)的顺序相反; 当第一个线程完成扩容计算后,并没有马上把原数组替换成新数组,所以其他线程还会继续操作原数组,但是 阅读全文
posted @ 2020-10-09 17:31 FirstLetterZ 阅读(201) 评论(0) 推荐(0)
摘要: 此方法为Object内的protected,若方法被重载,则在JAVA GC准备回收次对象时,会先将此对象放入队列之中,由队列控制执行对象的finalize方法,当finalize方法执行结束后,该对象才会被回收。每个对象的finalize方法最多会被执行一次,若是由于结束进程等非GC机制释放内存, 阅读全文
posted @ 2020-10-09 17:30 FirstLetterZ 阅读(96) 评论(0) 推荐(0)
摘要: 线程复用的实质就是在Tread内的Runnable的run()方法中不断的获取任务,执行任务。线程池内将保留核心线程数量的死循环线程,其余线程在没有任务时在超时间后若再无任务则销毁(run()方法执行结束)。 任务获取 这个方法内主要做3件事情:①检查线程池状态;②判断是否支持任务等待超时(time 阅读全文
posted @ 2020-10-09 17:29 FirstLetterZ 阅读(641) 评论(0) 推荐(0)
摘要: 动态代理属于设计模式中的代理模式,代理模式的定义为:为其它对象提供一种代理以控制对这个对象的访问控制;在某些情况下,客户不想或者不能直接引用另一个对象,这时候代理对象可以在客户端和目标对象之间起到中介的作用(百度百科)。动态代理则是在在程序运行时,通过反射机制动态生成代理对象。 核心方法:publi 阅读全文
posted @ 2020-10-09 17:24 FirstLetterZ 阅读(109) 评论(0) 推荐(0)
摘要: 用于字符串的拼接,可快捷设置前缀,后缀,分隔符等。由其内部的StringBuilder完成拼接,属于非线性安全。 主要初始化方法如下: public StringJoiner(CharSequence delimiter) public StringJoiner(CharSequence delim 阅读全文
posted @ 2020-10-09 17:23 FirstLetterZ 阅读(109) 评论(0) 推荐(0)
摘要: 使用举例: @TableField(typeHandler = StringListTypeHandler.class) private List<String> topList; 对需要转换类型的字段添加TableField注解指定对应执行当class(这个class一定要是对应此字段class类 阅读全文
posted @ 2020-10-09 17:21 FirstLetterZ 阅读(832) 评论(0) 推荐(0)
摘要: AOF持久化本质是采用日志的形式来记录每个写操作,并追加到对应的.aof文件中。 Redis重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作,会忽略掉RDB存储载入。 Redis服务默认没有开启AOF功能,打开redis.conf文件,找到 APPEND ONLY MODE 对 阅读全文
posted @ 2020-10-09 17:19 FirstLetterZ 阅读(88) 评论(0) 推荐(0)
摘要: RDB持久化本质为文件存储,将Redis管理的内存数据压缩生成.rb二进制文件;对应RDB文件路径由redis.conf的配置中的dir字段配置,默认的位置是./,表示当前位置,哪里启动Redis,就会在哪里生成持久化文件。 在Redis服务启动时,检测到RDB文件则会自动载入文件,会占用一定服务启 阅读全文
posted @ 2020-10-09 17:18 FirstLetterZ 阅读(88) 评论(0) 推荐(0)
摘要: 由于现在微服务的地址是动态的,可能变化的,所以需要将其地址注册到注册中心,以供客户端获取其地址并调用服务。若客户端从注册中心获取全部微服务地址,然后自己选择对应服务,则称为客户端发现;若客服端通过代理层获取指定的服务地址,则称为服务端发现。 客户端发现(eureka): 优点:简单直接,不需要代理的 阅读全文
posted @ 2020-10-09 17:16 FirstLetterZ 阅读(374) 评论(0) 推荐(0)
摘要: 在application.yml内添加如下代码; # mybatis-plus 配置内容 mybatis-plus: configuration: map-underscore-to-camel-case: true # 默认为 true log-impl: org.apache.ibatis.lo 阅读全文
posted @ 2020-10-09 17:15 FirstLetterZ 阅读(356) 评论(0) 推荐(0)
摘要: 一、Redis的优势: 纯内存操作,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value 数据库; 单线程工作模型,避免了上下文的切换的损耗; 采用非阻塞IO多路复用提高了CPU利用率; 通过生成rdb文件持久化储存,并利用缓冲区添加新的数据更新操作做对应的同步; 支持set, 阅读全文
posted @ 2020-10-09 17:08 FirstLetterZ 阅读(129) 评论(0) 推荐(0)
摘要: Application初始化时会先执行configureMessageConverters方法添加HttpMessageConverter到列表中,优先级高到在前优先级低的在后 @Override public void configureMessageConverters(List<HttpMes 阅读全文
posted @ 2020-10-09 17:07 FirstLetterZ 阅读(1044) 评论(0) 推荐(1)
摘要: 请求发起人与被请求人必须拥有相同的协议、主机地址以及端口,一旦这三项数据中有一项不同,那么该请求便是跨域请求。 解决方法: 使用@CrossOrigin注解: 注解可以放在method、class等上面,可以控制整个controller,也可以控制单个方法,这个是最小粒度的控制方法。 @CrossO 阅读全文
posted @ 2020-10-09 16:58 FirstLetterZ 阅读(72) 评论(0) 推荐(0)
摘要: JPA通过@GeneratedValue注解配置主键的生成策略,通过strategy属性选择预定的4种策略之一。 GenerationType.AUTO:默认选项,由程序自动选择一个最适合底层数据库的主键生成策略; GenerationType.IDENTITY:表自增长字段,Oracle不支持这种 阅读全文
posted @ 2020-10-09 16:57 FirstLetterZ 阅读(871) 评论(0) 推荐(0)
摘要: IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 正常情况下,当我们需要使用某个对象当时候,首先需要创建这个对象,而创建这个对象又依赖其他对象时,我们还需要先创建依赖对象。而使用了IoC之 阅读全文
posted @ 2020-10-09 16:56 FirstLetterZ 阅读(59) 评论(0) 推荐(0)
摘要: 1、create: 启动时删数据库中的表,然后创建,退出时不删除数据表 2、create-drop: 启动时删数据库中的表,然后创建,退出时删除数据表 如果表不存在报错 3、update: 如果启动时表格式不一致则更新表,原有数据保留 4、validate: 项目启动表结构进行校验 如果不一致则报错 阅读全文
posted @ 2020-10-09 16:50 FirstLetterZ 阅读(982) 评论(0) 推荐(1)
摘要: 第一步:打开View Tool Windows Persistence 第二步:在Persistence界面下选中需要配置的模块,右键弹出选项框,点击Generate Persistence Mapping By Database Schema 第三步:点击下图红框中的按钮 第四步:从左侧列表中选择 阅读全文
posted @ 2020-10-09 16:49 FirstLetterZ 阅读(496) 评论(0) 推荐(0)
摘要: 执行:sudo mysql.server status 报错:ERROR! MySQL is running but PID file could not be found 原因:mysql进程异常 解决办法:找到并kill掉所有关于mysql的进程 执行==>ps -ef | grep mysql 阅读全文
posted @ 2020-10-09 16:46 FirstLetterZ 阅读(1954) 评论(0) 推荐(0)
摘要: 有2种方式为Form添加默认值: 使用Form的initialValues; 使用Form.Item的initialValue。 两种方式不能同时只用,会有warn提示; 本篇文章主要讲第一种方式: productDetail = { name: '商品名称', description: '商品描述 阅读全文
posted @ 2020-10-09 16:44 FirstLetterZ 阅读(3509) 评论(0) 推荐(0)
摘要: 通过defaultSelectedKeys设置默认选中,通过selectedKeys设置实际选中;只有当selectedKeys没有值当时候defaultSelectedKeys才生效;需要注意的是,当页面刷新时,Menu状态将会刷新到初始状态,而此时停留到页面却不是初始页面,此时需要根据当前页面路 阅读全文
posted @ 2020-10-09 16:41 FirstLetterZ 阅读(5503) 评论(0) 推荐(2)
摘要: this.props.location.query: 1)路由注册 <Route path=' /target ' component=> 2)发起跳转页面 html方式: <Link to={{ path : ' /target ' , query : { id : '6666' }} >XXXX 阅读全文
posted @ 2020-10-09 16:40 FirstLetterZ 阅读(2435) 评论(0) 推荐(0)
摘要: 由于React是单页面应用,所以在webpack打包后会合并到一起,命名相同的class会按照使用顺序先后加载,并同时存在; 解决方法: 1、使用css modules,会编译的时候重新命名,避免重复; 2、注意css内class命名不要重复; 2020-10-08 阅读全文
posted @ 2020-10-09 16:36 FirstLetterZ 阅读(361) 评论(0) 推荐(0)
摘要: js中的长整型(long)为53位,而JAVA中是64位(最大值263-1),所以,当数字值大于253时,末尾数字全部会变成0; 2020-10-08 阅读全文
posted @ 2020-10-09 16:35 FirstLetterZ 阅读(2331) 评论(0) 推荐(0)
摘要: ###应用场景: 默认情况下只有通过路由跳转的页面才有this.props(路由参数),而有一些特殊情况,例如直接在浏览器输入地址时,this.props为null;如果我们此时需要获取this.props中的location,search,query等属性时,就需要使用withRoute。 使用举 阅读全文
posted @ 2020-10-09 16:33 FirstLetterZ 阅读(105) 评论(0) 推荐(0)
摘要: 原因:vertical-align属性只对行内元素有效,对块内元素无效 解决: 将display属性设置为table-cell 设置父组件行高即line-height与父组件实际高度相等 2020-03-04 阅读全文
posted @ 2020-10-09 16:32 FirstLetterZ 阅读(871) 评论(0) 推荐(0)
摘要: 在package.json文件中配置proxy信息 React 2.0及以下的版本: "proxy": "http://服务器地址" // 配置你要请求的服务器地址 新版本支持配置多个代理 "proxy": { "/path1": { "target": "http://服务器地址01", "cha 阅读全文
posted @ 2020-10-09 16:29 FirstLetterZ 阅读(344) 评论(0) 推荐(0)
摘要: 贝尔曼-福特算法(英语:Bellman–Ford algorithm),求解单源最短路径问题的一种。它的原理是对图进行次松弛操作,得到所有可能的最短路径;因为负权环可以无限制的降低总花费,所以如果发现第 n次操作仍可降低花销,就一定存在负权环。 必要入参: 节点数量:n 节点路径:path[][] 阅读全文
posted @ 2020-10-09 16:21 FirstLetterZ 阅读(396) 评论(0) 推荐(0)
摘要: 创建或复制xml配置文件,右键选中xml配置文件,选择Add as Maven Project 之后就是漫长的等待 2020-03-20 阅读全文
posted @ 2020-10-09 16:18 FirstLetterZ 阅读(137) 评论(0) 推荐(0)
摘要: 连接断开:Http 1.0默认会在请求结束后自动断开TCP连接,Http 1.1之后默认在请求头中添加了keep-alive来保持连接不会断开; 并发请求:在Http 1.0同一时间同一个TCP连接只能处理一个请求,Http 1.1 中增加了Pipeling技术支持并发请求,但是这项技术存在的问题较 阅读全文
posted @ 2020-10-09 16:17 FirstLetterZ 阅读(86) 评论(0) 推荐(0)
摘要: 方法一: 1. 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 2. sudo mv 到 /usr/local/ 3. sudo tar -zxf redis-3.2.0.tar 解压文件 4. 进入解压后的目录 cd redis-3.2.0 5. sudo make t 阅读全文
posted @ 2020-10-09 16:07 FirstLetterZ 阅读(1705) 评论(0) 推荐(0)
摘要: 从git远端拉下代码后,发现源代码窗口显示空白,侧边的分支管理图标没有数字。 解决办法:在VSCode的setting文件添加配置: "scm.alwaysShowProviders": true, // 控制是否显示源代码管理提供程序部分,即使只有一个已注册的提供程序。 注意,尽量不要改动Defa 阅读全文
posted @ 2020-10-09 16:04 FirstLetterZ 阅读(2390) 评论(0) 推荐(0)
摘要: 硬链接 通过索引节点(inode)来进行链接(创建了一个新的Directory项,但是不占用空间); 特点: 一个文件可以对应多个硬连接,且多个硬连接拥有相同的 inode 及 data block;硬连接可看作直接引用指针,不同的硬连接对应不同的引用名称。 只能对已存在的文件进行创建;inode 阅读全文
posted @ 2020-10-09 16:03 FirstLetterZ 阅读(213) 评论(0) 推荐(0)