自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android技能树 — Fragment总体小结

所以Fragment也很简单,就把它当做一个简单的View(但其实更像是“子 Activity”),然后添加方式也是一样。//自定义的Fragment类//要先获取FragmentManager对象//开启一个FragmentTransaction事务其中添加到的这个id的ViewGourp可以是,也可以是其他的比如等。

2024-06-19 03:50:03 848

原创 异常:存储MYSQL转义数据保证数据存储的准确性

id, escape_string(boc_image_path)) # 这里执行数据插入图片地址boc_image_path字符串时,使用boc_image_path()函数进。在pymysql的版本高于0.10.1版本使用pymysql.converters模块下escape_string,我现在使用的就是0.16的版本进行操作的。使用时直接使用escape_string()函数将需要转义的字符串作为参数传递,返回结果就是我们需要的正确的字符串。logger.debug(“已经得到数据库连接”)

2024-06-19 03:49:20 372

原创 Android开发常用的40个ADB命令

adb shell 后面加将是直接运行设备命令, 相当于执行远程命令6. 从电脑上发送文件到设备。以后就可以方便的用and-screencap > 直接将截图保存到电脑上了其他入门级但也比较常见的adb命令1、查看所有已经连接上的设备。命令格式:adb shell sendevent [device] [type] [code] [value]命令格式:adb shell sendevent [device] [type] [code] [value]

2024-06-19 03:19:04 944

原创 字节三面:小伙子你先跟我说一说红黑树吧

234树的生长都是从叶子节点进行分裂的,也就是说除了叶子节点,就是说最少的子节点也就是两个,最多4个,不可能出现上图的情况,两个子节点的节点为2-节点,2节点除了第一次添加为根节点或叶子节点以外,任何2-节点都会连接两个子节点,而两个子节点肯定是2,3,4节点其中之一,转换红黑树不可能出现上图情况,可以回去看看234树转换红黑树对应图。为什么没有2个孩子的情况呢?叶子节点 : 标记为NIL,为虚拟节点,颜色必须为黑色,234中叶子节点为没有子节点的节点,而红黑树的叶子节点是虚拟的节点。

2024-06-19 03:04:08 759

原创 多线程与高并发编程(七)【线程池一】

defaultThreadFactory()源码如下new Thread() 起一个线程和名字isDaemon() 是否是守护线程,如果是那就把它变成非守护线程setPriority() 设置优先级是普通四种拒绝策略:Abort 抛异常。

2024-06-19 02:23:24 515

原创 Android厂商推送冲突了。。。

虽然按照上面的方式可以解决当前的冲突问题,但这里面有一点就是厂商推送的SDK都是包在极光的SDK中,云信自己并没有单独的集成(如果单独集成会冲突)。这就导致后面云信和极光sdk有升级时,可能两家兼容厂商推送sdk的版本不同。比如华为推送sdk有更新,极光兼容了,但网易云信没有兼容,这个时候还是会出一些问题。所以在升级的时候还需要查看下各个厂商对应的兼容情况再升级,针对上述厂商通道推送冲突如果你有更好的解决方案,欢迎留言!

2024-06-19 02:16:52 782

原创 Android主流三方库源码分析:Dagger2(1)

这里的mAndroidInjector是一个类型为DispatchingAndroidInjector的对象,可以这样理解它:它能够执行Android框架下的核心成员如Activity、Fragment的成员注入,在我们项目下的Application中将DispatchingAndroidInjector的泛型指定为Activity就说明它承担起了所有Activity成员依赖的注入。在注释1处,新建了一个mainActivit的子组件构造器实例提供者Provider。

2024-06-19 01:47:24 728

原创 后端面试每日一题 Spring事务、Mysql事务、分布式事务

例子// 定义事务// txManager,事务管理器// 通过事务管理器开启一个事务try {// 完成自己的业务逻辑// 出现异常,进行回滚throw ex;// 正常执行完成,提交事务Spring事务抽象的关键就是事务策略的概念,事务策略是通过接口定义的。本身只是一个标记接口,它有两个直接子接口,这个接口主要用于在响应式编程模型下,不是我们要讨论的重点,命令式编程模型下我们使用这个接口。// 开启事务// 提交事务// 回滚事务。

2024-06-19 01:40:19 562

原创 Android-Universal-Image-Loader异步加载图片框架学习研究

额,多么熟悉的结构,只需要看一个接口BitmapDisplayer,里面只有一个方法display,即整个模块目的只有一个,显示图片,至于如何显示,官方也提供给了我们几种行为策略:FadeInBitmapDisplayer(渐变显示)、RoundedBitmapDisplayer(图片圆角显示)、RoundedVignetteBitmapDisplayer(没玩过,意思是装饰圆角么,嘿嘿)!当然这只是一点点,具体你要怎么显示,当然是天高任你飞了,只要实现BitmapDisplayer这个接口,就行了。

2024-06-19 01:13:48 218

原创 Android 这座山,我一定要爬到顶

并在专栏中穿插大量诸如 ASMDemo 、DexClassLoaderHotFix 等代码案例,一步步告诉你,如何将学到的底层原理应用到实际项目中。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这个课程中有所收获。其实,这些问题是 99% 初中级开发工程师的普遍问题,也许你正在经历,也许你即将经历。并和你分享一些疑难问题的解决思路,让你在以后的工作中,能够有方法论的指导。实际上,你的答案反映了你对技术理解的深度,以及解决问题的能力。

2024-06-19 00:44:06 715

原创 关于Mysql面试需要掌握的知识点

读到未提交数据:脏读,不可重复读:可重读:串行事物REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。每当行被更改时,时间戳字段将获取当前时间戳。将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。

2024-06-19 00:40:27 632

原创 Android 框架炼成 教你如何写组件间通信框架EventBus

register里面,我们遍历该类的所有方法,找到onEvent开头的,封装成SubscribeMethod,存在Map里面,当然了,一个参数类型对应很多方法,所以value是个CopyOnWriteArrayList。到此,我们的EventBus就写好了,100多行代码,肯定没有EventBus健壮,主要目的还是学习人家的思想,经过自己写了这么个类,我相信对于EventBus的理解就更深刻了。前面的文章,很多朋友问,如果我多个方法参数都一样,岂不是post一个此参数,会多个方法调用;

2024-06-19 00:15:29 532

原创 从零学Java(25)之 break语句详解

/ 获取星期的第几日。// 获取星期的第几日。System.out.print(“内循环的第” + (j + 1) + “次循环\t”);第1次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环。第2次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环。第3次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环。第4次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环。第5次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环。

2024-06-18 12:27:28 784

原创 为 Spring Boot 应用添加 Redis Caching

编写 Service 用于测试,具体的测试代码这里就不再贴出来了,有兴趣的可以自行尝试。User user = userService.add(“李四”);userService.update(userId, “王五”);// 由于配置是5秒中后缓存失效,这里休眠后重新读取。// 测试缓存,观察是否有SQL输出。// 类名.方法名.参数值。

2024-06-18 08:38:43 542

原创 【零基础学Java】—Java 日期时间(三十二)

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 HH时mm分ss秒”);f=new SimpleDateFormat(“yyyy年MM月dd日 HH时mm分ss秒”);Date date=sdf.parse(“2022年04月11日 19时41分35秒”);

2024-06-18 07:59:54 268

原创 【leetcode刷题】22

给定一个二叉树的根节点 root ,返回它的 中序 遍历。函数内:递归的调用左节点,打印当前节点,再递归调用右节点。进阶: 递归算法很简单,你可以通过迭代算法完成吗?输入:root = [1,null,2,3]输入:root = [1,null,2]树中节点数目在范围 [0, 100] 内。实现思路也很简单,非常典型的递归。输入:root = [1,2]——leetcode此题热评。输入:root = [1]哈喽,大家好,我是一条。输入:root = []终止条件:当前节点为空时。输出:[1,3,2]

2024-06-18 07:24:15 158

原创 「太牛了」来自华为内部的SpringBoot全优笔记,看完受益匪浅

很显然,微服务是未来的发展趋势,项目会从传统架构一点一点转向微服务架构。不论你是互联网人才,还是传统行业从业者,学习流行技术是非常重要的。SpringBoot作为官方大力推荐的一个技术,是每一个开发人员都应该要掌握的重点。学习不难,贵在自觉和坚持。如果你也需要这份SpringBoot全优笔记帮助你学习SpringBoot,小编很乐意分享。[外链图片转存中…(img-2gYaUJ3r-1718663668878)]很显然,微服务是未来的发展趋势,项目会从传统架构一点一点转向微服务架构。

2024-06-18 06:48:36 615

原创 《金九银十》“不务正业”的程序员靠这份面试总结,秒杀了面试官

很多人换工作都会追求更大更成熟的公司,其实如果选择发展速度更快、上升空间更大的公司会更好。如果公司在高速发展期,这个时候机遇会特别多。因为业务要发展,自然就会出现更多的管理岗或者专家岗。更重要的是,在高速发展的公司因为业务的增长速度快,所产生的学习机会、成长机会会让你的业务能力、专业能力得到更快的提升。今天小编把Java的10万字总结分享给各位,只希望各位都走进大厂,大家一起加油!!!目录大纲====基础篇===​maven篇======多线程&并发篇=======​。

2024-06-18 06:09:50 171

原创 《游戏学习》Java实现仿雷电游戏设计

为实现一个完整的雷电游戏,我们首先将游戏划分为几个模块,包括界面背景,敌人和炸弹,我方的英雄和炸弹以及威力巨大的导弹,对我方英雄的行为控制,碰撞和消除,游戏道具和我方英雄生命,分数积累,关卡设置,以及最终大BOSS。要求:写明设计思想、程序的结构、功能关系图、类的说明并按照UML的规范画出类之间的关系图、程序执行流程图,最后是源代码。建立了一个基类,将游戏界面以坐标的方式划分,以便完成绘制,返回坐标,移动等基本功能。定义我方英雄,发射导弹的位置和发射子弹的位置,以及用键盘控制的英雄移动。

2024-06-18 05:36:22 916

原创 《关于我的那些面经》滴滴Java岗(附答案)

手撕单例模式======所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。:类构造器私有、持有自己类型的属性、对外提供获取实例的静态方法线程不安全,延迟初始化,严格意义上不是不是单例模式线程安全,比较常用,但容易产生垃圾,因为一开始就初始化线程安全,延迟初始化。这种方式采用双锁机制,安全且在多线程情况下能保持高性能。双重检查模式,进行了两次的判断,第一次是为了避免不要的实例,第二次是为了进行同步,避免多线程问题。由于。

2024-06-18 04:58:15 876

原创 《MySQL必知必会》读书笔记 —— 第14章 使用子查询、第15章 联结表、第16章 创建高级联结、第17章 组合查询

第14章 使用子查询14.2 利用子查询进行过滤14.3 作为计算字段使用子查询第15章 联结表15.1.2 为什么要使用联结15.2 创建联结15.2.2 内部联结(等值联结)15.2.3 联结多个表第16章 创建高级联结16.2 使用不同类型的联结16.2.2 自然联结16.2.3 外部联结16.3 使用带聚集函数的联结16.4 使用联结和联结条件第17章 组合查询17.2 创建组合查询先做些准备工作。介绍需要用到的几个表,以及它们的结构,建库建表的SQL脚本在文章末尾给出。其中是主键,自增mysql>

2024-06-18 04:27:19 554

原创 《java学习笔记》之异常处理机制

/编译器报错信息:Error:(19, 15) java: 未报告的异常错误java.lang.ClassNotFoundException;/*java.io.FileNotFoundException: C:\Users\A556U\Desktop\文\day34-作业.txt (系统找不到指定的路径。//java.lang.NullPointerException: 空指针异常。

2024-06-18 03:57:54 236

原创 “北斗女神”徐颖:科研时间一定大于996

天天泡在实验室里,面对一大堆数据与程序,徐颖也会觉得枯燥,但“这个行业本身就是这样,一定是一段时间的寂寞和耕耘后,你才能得到想要的结果”。在群里和大家分享一些程序员开发相关的知识,包括部分自己的实战项目,基础入门知识,spring,jvm,mysql等等。她认为人的时间是有限的,花在一件事情上的时间多了,花在另外一件事情上的时间一定就会少,没有必要给自己那么高的要求。徐颖在高中期间,理科成绩十分优秀,“未来有可能当个物理学家或者是科学家”是小时候徐颖最初的想法,也是那个时候孩子普遍的一个梦想。

2024-06-18 03:14:44 701

原创 [JAVA基础类库] Objec类

这里简单介绍了一下Object类和它的两种常用方法,对于Object要记住它是所有类的爹,以及toString和equals多数情况都需要重写;后续如果有其他方法还会补充;

2024-06-18 02:40:25 306

原创 Spring高级源码笔记-BeanFactory创建流程全面解析附带代码实现!

至此,注册流程结束,我们发现,所谓的注册就是把封装的 XML 中定义的 Bean信息封装为。我们可以看到,此处 Spring 首先完成了。,期间产生了多次重载调用,我们定位到最后一个。对象之后放入一个Map中,此处我们关注两个地方:一个。中看到此Map的定义。

2024-06-18 02:05:36 316

原创 springboot项目--数据库配置(使用JpaRepository进行增删改查)

/https://blog.csdn.net/fly910905/article/details/78557110/ JpaRepository用法,实现增删改查。timestamp not null default current_timestamp comment’创建时间’,@GeneratedValue(strategy = GenerationType.IDENTITY)//配置主键自增长。decimal(8,2)not null comment’类目编号’,)comment’商品表’;

2024-06-18 01:33:20 220

原创 Spring Cloud构建微服务架构(一)服务注册与发现

微服务架构“微服务架构”在这几年非常的火热,以至于关于微服务架构相关的产品社区也变得越来越活跃(比如:netflix、dubbo),Spring Cloud也因Spring社区的强大知名度和影响力也被广大架构师与开发者备受关注。那么什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。

2024-06-18 01:04:28 406

原创 Service 层和 Dao 层有必要为每个类都加上接口吗?

第二种方式,是新增一个Service模块,在里面编写新的逻辑(注意这里的包和原来Service的包不能相同,或者包相同,但是类名不同,否则无法创建类。在这种情况下,每一层都先定义一个接口,再去实现逻辑,除了增加了开发人员的工作量(当然,如果代码量计入工作量的话,那开发人员应该也不是太排斥接口的!),实际没有任何用处。如果开发人员想在下层逻辑没有完成的情况下,先开发上层逻辑,可以先编写下层类的空方法来先完成上层的逻辑。一个不太优雅的解决是,将原来的模块里的代码拷贝一份到新模块中,基于老代码来实现新的逻辑。

2024-06-17 21:28:26 476

原创 RabbitMQ 延迟队列,消息延迟推送

发送消息时我们需要指定延迟推送的时间,我们这里在发送消息的方法中传入参数 new MessagePostProcessor() 是为了获得 Message对象,因为需要借助 Message对象的api 来设置延迟时间。我们在 Exchange 的声明中可以设置exchange.setDelayed(true)来开启延迟队列,也可以设置为以下内容传入交换机声明的方法中,因为第一种方式的底层就是通过这种方式来实现的。使用传统的数据库轮询来判断数据库表中订单的状态,这无疑增加了IO次数,性能极低。

2024-06-17 20:57:32 806

原创 MySQL数据库——事务和索引

*丢失修改(Lost to modlify)😗*指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-1,最终结果A=19,事务1的修改被丢失。在索引检索的时候,首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以data域的值为地址读取相应的数据记录。并发虽然是必须的,但可能会导致以下的问题。

2024-06-17 20:22:29 500

原创 MFC中的CDC 绘图

因为控件也是窗口,控件类都是CWnd的派生类。所有映射模式的逻辑坐标的原点(0, 0)最初都是在窗口的左上角,但在CScrollView的派生类中,MFC会随用户滚动文档而自动调整逻辑原点的相对位置(改变视点的原点属性)。CDC是CObject的直接派生类,CDC类自己也有若干派生类,其中包括窗口客户区DC所对应的CClientDC类、OnPaint和OnDraw消息响应函数的输入参数中使用的CPaintDC类、图元文件对应的CMetaFileDC类和整个窗口所对应的CWindowDC类。

2024-06-17 19:53:32 664

原创 LeetCode - Easy - 268

位操作,整型符号用来作标记。// 方法二:所有下标与元素累异或。// 方法五:排序 + 二分查找。方法二:所有下标与元素累异或。方法五:排序 + 二分查找。// 方法四:数学上此消彼长。方法三:利用数学求和公式。// 方法三:数学求和公式。方法四:数学上此消彼长。// 方法一:我写的。

2024-06-17 19:24:35 646

原创 Java阶段一:基础语法

在程序运行过程中,其值可以发生改变的量。标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写。4.float类型的变量定义的时候,为了防止类型不兼容,后面要加F。3.long类型的变量定义的时候,为了防止整数过大,后面要加L。标识符由多个单词组成的时候,每个单词首字母大写。在程序运行过程中,其值不可以发生改变的量。一个已有的Java程序,只需要安装。标识符是一个单词的时候,首字母小写。标识符是一个单词的时候,首字母大写。变量名=变量值(例:a=20)Java程序的运行时环境,

2024-06-17 18:53:29 826

原创 Java接口也有坑?不容忽视!

所以在这里可以使用d[i]数组中的每一个对象调用draw()方法,由于对平行四边形类和正方形类实现了向上转型,所以在d[i]数组中的每一个对象分别代表平行四边形类对象和正方形类对象,因此结果才会输出正方形类和平行四边形类中的draw()方法。**我们知道在Java的类中不允许出现多重继承,但在使用接口的时候就可以的实现接口的多重继承,**一个类可以实现多个接口,因此可以将所有需要继承的接口放置在implements关键字的后面,并且使用逗号分隔开,//定义正方形类,继承父类 实现drawText接口。

2024-06-17 18:24:18 423

原创 Java垃圾收集器

这个收集器是直到JDK 6时才开始提供的,在此之前,新生代的Parallel Scavenge收集器一直处于相当尴尬的状态,原因是如果新生代选择了Parallel Scavenge收集器,老年代除了Serial Old收集器以外别无选择,其他表现良好的老年代收集器,如CMS无法与它配合工作。Parallel Scavenge收集器的特点是它的关注点与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量。

2024-06-17 17:54:33 626

原创 JavaWeb 学习笔记总结( 一 )

System.out.println(“保存之前:Context1获取key1的值是:”+context.getAttribute(“key1”));System.out.println(“Context1中获取域数据key1的值是:”+context.getAttribute(“key1”));System.out.println(“Context1中获取域数据key1的值是:”+context.getAttribute(“key1”));2.他是不可以访问工程以外的资源!与上面的name不能混淆。

2024-06-17 17:16:57 941

原创 Java 1060 爱丁顿数

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。

2024-06-17 16:46:14 376

原创 Feign源码分析

cloud-netflix-core的jar包下,打开这个类,可以发现它是一个配置类,注入了很多的相关配置的bean,包括feignRetryer、FeignLoggerFactory、FormattingConversionService等,其中还包括了Decoder、Encoder、Contract,如果这三个bean在没有注入的情况下,会自动注入默认的配置。首先在启动配置上检查是否有@EnableFeignClients注解,如果有该注解,则开启包扫描,扫描被@FeignClient注解接口。

2024-06-17 16:12:51 395

原创 AtomicBoolean介绍与使用

该代码使用static变量exists用来实现同一时间只有一个worker在工作. 但是假设exists的判断和exists = true;之间有了 其他指令呢?可以看到两个线程同时工作了。

2024-06-17 15:35:02 770

原创 40K+Star!Mall电商实战项目开源,附源码、教程合集

为什么要写mall项目?打造一个业务与技术相结合的实战项目!2018年初的时候一度想找个业务与技术相结合的开源项目学习下,但是一直没有找到合适的,于是萌生了自己写一个的想法。总感觉一个项目要是缺少了业务和应用场景,就好像没有了灵魂。于是业务选择了比较好理解的电商,技术选择了流行的SpringBoot。历时1年多,2019年8月的时候mall项目累计获得了20K+StarSpringCloud系列教程当项目发展到一定程度,总会去寻找一些新的突破,于是我想把mall项目改造成微服务版本。

2024-06-17 14:55:52 242

空空如也

空空如也

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

TA关注的人

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