- 博客(16)
- 收藏
- 关注
原创 Android学习-JAVA基础 (二)
Integer:把一个字节内的整数缓存在整数常量池中,这样可以避免不断创建细粒度的对象,造成对内存的消耗。高层模块不应该依赖底层模块,二者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。ISO859-1:单字节编码,英文上应用,一个字符一个字节0-255字符范围。//如果操作的是非文本类型(如音频文件,视频,都是字节文件)建议适用字节流。一个软件的实体如类,模块,函数,应该对扩展开放,对修改关闭。
2025-01-20 11:40:11
654
原创 20 个实例玩转 Java 8 Stream,写的太好了!
中间操作,每次返回一个新的流,可以有多个。终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。另外,Stream有几个特性:stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。stream不会改变数据源,通常情况下会产生一个新的集合或一个值。stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。2 Stream的创建Stream可以通过集合数组创建。1、通过方法用集合创建流// 创建一个顺序流。
2025-01-20 08:03:22
762
原创 Redis事务和锁操作
事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到 MULTI 和 EXEC 两个命令,事务开始的时候先向Redis服务器发送 MULTI 命令,然后依次发送需要在本次事务中处理的命令,最后再发送 EXEC 命令表示事务命令结束。事务中的所有命令都是序列化且都是按顺序执行的。WATCH 可以用来监听事务中的队列中的命令,在EXEC之前,一旦发现有一个命令被修改了的 , 那么整个事务就会终止, EXEC返回一个 Null ,提示用户事务失败了。
2025-01-18 22:52:30
893
原创 Redis~初识缓存, 了解本地缓存(Spring Cache)和分布式缓存(Redis)
初识缓存一个实际程序中最影响效率的就是对数据库中数据的操作,为了提高效率就必须引进缓存技术.缓存是一个道速数据交换的存储器, 使用它可以快速访问和操作数据.对于程序来说,当没有缓存时, 每次访问数据都得去数据库中查找, 而有多个数据请求的时候, 如果都去数据库中查找, 那么对数据库的压力也是非常大的, 但当我们引进缓存后, 将访问过一次的数据记录在缓存中, 待后续的访问这些数据的时候, 直接访问缓存就可以提高很高的效率。
2025-01-18 22:50:28
369
原创 Java应用在docker环境配置容器健康检查
此时宿主机上已经有了名为bolingcavalry/jdk8-healthcheck:0.0.1的镜像,该镜像带有容器健康检查的参数配置,以此作为基础镜像来构建的其他镜像都集成了健康检查的特性;a. hello方法是此应用对外提供的服务,如果本地文件abc.txt存在且内容不为空,hello方法的返回码就是200,否则返回码为403,表示当前服务出现异常;b. getstate方法是新增的服务,该接口会被docke-daemon调用,如果返回码是200,就表示容器健康,如果返回码是403,表示容器不健康;
2025-01-17 20:56:57
669
原创 Java并发(四):volatile的内存语义
读写语义对应的其实就是volatile的变量修饰后,会进行怎样的过程其实volatile的读写语义,就是线程之间的通信,所以volatile也是实现了线程之间的通信,来提供可见性线程A去写volatile变量,实质上是线程A对其他要操控该volatile变量的其他线程发出了消息,该消息表明了线程A已经把该变量修改了,其他线程需要重新去获取线程B去读volatile变量时,实质上是线程B接收到了之前某个线程发出的消息(可能没有消息,不过也认为接收到),知道这个变量改了,需要去重新获取。
2025-01-17 20:54:55
696
原创 Git 各指令的本质,真是通俗易懂啊
为了便于表述,本篇文章我会通过节点代称commit提交在Git中每次提交都会生成一个节点,而每个节点都会有一个哈希值作为唯一标示,多次提交会形成一个线性节点链(不考虑merge的情况),如图1-1节点上方是通过 SHA1计算的哈希值C2节点包含C1提交内容,同样C3节点包含C1、C2提交内容HEAD是Git中非常重要的一个概念,你可以称它为指针或者引用,它可以指向任意一个节点,并且指向的节点始终为当前工作目录,换句话说就是当前工作目录(也就是你所看到的代码)就是HEAD指向的节点。
2025-01-17 04:57:09
657
原创 git merge 和 git rebase 小结_rebase merge详细讲解
这些命令会把你的"mywork"分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到"mywork"分支上。但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了。因为C6’提交只是C6提交的克隆,C5’提交只是C5提交的克隆,
2025-01-17 04:55:07
386
原创 CC2530的串口通信原理与应用_简述cc2530的uart串口接收数据原理
【代码】CC2530的串口通信原理与应用_简述cc2530的uart串口接收数据原理。
2025-01-16 21:39:37
728
原创 5分钟手撸一个简单、易用的缓存组件,架构师都对我刮目相看
**从缓存中获得对象@param key 键@return 键对应的对象*//**从缓存中删除对象@param key 键*/紧接着我们继续来实现缓存的大致龙骨。缓存框架实现。
2025-01-16 07:28:05
997
原创 5个有意思的stackoverflow问题总结之一
我们知道编译器是允许进行隐式转换(implicit conversion)的,就是说如果类 A 有一个只有一个参数的构造函数,那么是允许从这个参数对象隐式转换为 A 对象的,直接看个例子就明白了,译注:原文中还有一段没有翻译,因为我不知道怎么翻译,这里原文贴在这里(此处的代码我在 Visual Studio 2017 上报错:一元负运算符应用于无符号类型,结果仍为无符号类型)。同样的,只有 x 等于 0 或者 1 才会生效,如果是其它的数,结果未知。类型的,但是它可以正常调用,这就是因为隐式转换。
2025-01-16 07:26:04
1148
原创 5个数组Array方法 indexOf、filter、forEach、map、reduce使用实例_数据库 next return prev
prev和next你是必须要了解的。一般来讲prev是从数组中第一个元素开始的,next是第二个元素。但是当你传入初始值(initialValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素。reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。map()对数组的每个元素进行一定操作(映射)后,会返回一个新的数组,该filter()方法创建一个新的匹配过滤条件的数组。map()是处理服务器返回数据时是一个非常实用的函数。
2025-01-16 07:24:02
662
原创 springboot项目创建笔记25 之《集成redis集群哈希槽》
用HashTag标记,HashTag即是用{}包裹key的一个子串,只有在{}的内容才计算哈希值,这样可以保证落在同一个哈希槽中。//把当前的时间key,并且把后推23个小时,共计近24个小时,求出并集存入Constants.DAY_KEY中。合并各个集合的key时,涉及多key操作,而要执行多key操作,在redis集群里被限制在同一个哈希槽中才能执行。redis的集群读写操作,数据都会被切成3份,放在不同的master里面。redis的主从,里面的数据一定是一样的。2、启动应用发现报错。
2025-01-14 01:46:17
269
原创 SpringBoot项目中集成JAXB实现XML与Java对象的互相转换
2,在项目中,有时候会遇到一个页面中存在很多的实体类中的数据,而且有时候有些数据不是必需的,就是说可以通过DTO来编写这些实体类,但有时候需要将这些DTO进行预先存储,不是存储到数据库中,这样就有两种思路,可以存储在内存中,也可以存储在硬盘上,此时就可以通过将Java对象转换成XML文件存储,或者变成String类型进行存储在内存中。1,在项目中,有时候会有很多的XML文件,但如果可以将这些文件通过对象的方式去操作,就会减少很多操作问题,而且更加符合程序员的编码方式,这里我就在控制层测试。
2025-01-14 01:42:36
624
原创 springBoot集成dubbo
UserAddress address1 = new UserAddress(1, “北京市昌平区”, “1”, “李老师”, “010-56253825”, “Y”);UserAddress address2 = new UserAddress(2, “深圳市宝安区”, “1”, “王老师”, “010-56253825”, “N”);4:服务消费者基于软负载均衡算法调用服务提供者的服务,这个服务提供者有可能是一个服务提供者列表,调用那个服务提供者就是根据负载均衡来调用了。
2025-01-14 01:38:53
973
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅