- 博客(200)
- 收藏
- 关注
原创 Android Framework分析init进程如何启动 Zygote 进程_android init进程创建zygote进程的流程
大概可以分析是Service 用于通知 init进程创建名为 zygote 的进程,这个进程执行程序的路径为/system/bin/app_process64,其后面的代码是要传给 app_process64 的参数。打开app_main.cpp我们可以发现这里有一个main函数可以接收参数,而接收的参数也正是init.zygote64.rc第一行配置的。这里我们查看system/core/init/init.cpp的main函数,可以看到其中有行代码是解析init.rc文件。
2024-11-27 10:16:55 283
原创 Android Framework分析init进程如何启动 Zygote 进程_android init进程创建zygote进程的流程(1)
大概可以分析是Service 用于通知 init进程创建名为 zygote 的进程,这个进程执行程序的路径为/system/bin/app_process64,其后面的代码是要传给 app_process64 的参数。打开app_main.cpp我们可以发现这里有一个main函数可以接收参数,而接收的参数也正是init.zygote64.rc第一行配置的。这里我们查看system/core/init/init.cpp的main函数,可以看到其中有行代码是解析init.rc文件。
2024-11-27 10:14:55 428
原创 Android Framework 开发解密,移动开发者必须掌握的底层原理_android framework pdf
相信这份资料,一定可以为大家在Framework的学习上提供强有力的帮助和支撑,快人一步成为真正的高级Android开发者。**腾讯技术团队出品《Android Framework开发揭秘》**完整文档的可扫描下方二维码直接领取。
2024-11-27 10:12:54 682
原创 注意:Java方法重写时需要的5个问题,2024年最新堆栈 面试
结论:在子类重写父类的方法时,重写的方法权限控制符不能变小,它可以等于或大于父类的权限控制符。子类中的方法参数类型和个数都要和父类方法保持一致,不然也会报错,如下图所示。那么问题来了,子类中的访问控制符能变大吗?public > protected > 无 > private。然而在方法重写的过程中,也需要注意以下问题。注意事项5:方法的参数类型和个数必须保持一致。注意事项1:子类权限控制符不能变小。注意事项2:子类返回值类型只能变小。注意事项3:抛出的异常类型只能变小。
2024-11-21 16:43:59 389
原创 普本却敢面试大厂?最终上岸阿里定薪35K,看完这篇文章你也可以,嵌入式常见的面试笔试题
核心技术及面试题面试常考的核心知识点包括网络与IO、sql优化、Java基础能力、反射机制JVM、多线程等等。以下是我整理的一些Java常见面试题,希望对你有用。另外面试中有一些问题很难,但是不要放弃,要不断尝试。很多时候,面试官并不期待你能在很短的时候内解出一道难题,他只是想看一下你遇到难题时的态度和思维方式。
2024-11-21 15:29:05 245
原创 数据库开发基础-Oracle-SQL基础-004,面试的经验与分享怎么写
having 必须跟在 group by子句后,作用是在分组统计后,基于统计结果。group by 会根据后面的给定的字段值相同的记录进行分组,当select子句中有聚合函数时,凡不在聚合函数中的其他字段。反过来则不是必须的。–上面只考虑不为null的记录,会忽略为null记录的统计。的记录在结果集中来自右侧表中的字段全部以null作为值显示。所以 having 的过滤是在 where 之后进行的。求指定字段在查询出的所有记录中的最大值与最小值。查看平均工资高于2000的部门的最高薪水是多少?
2024-11-21 14:22:39 264
原创 掌握JVM有多必要?,2024年最新刚从阿里、头条面试回来
这里的“pc寄存器”(即程序计数器)是在抽象的JVM层面上的概念——当执行Java方法时,这个抽象的“pc寄存器”存的是Java字节码的地址。不同的是,本地方法栈服务的对象是JVM执行的native方法,而虚拟机栈服务的是JVM执行的java方法。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现,也就是说,在同一时刻一个处理器内核只会执行一条线程,处理器切换线程时并不会记录上一个线程执行到哪个位置,所以为了线程切换后依然能恢复到原位,每条线程都需要有各自独立的程序计数器。
2024-11-21 13:10:27 822
原创 成功逆袭:外包—苏宁—阿里 论我是怎么快速晋升的?,2024年最新你值得阅读的Mysql事物学习笔记
我在开发过程中,总会遇到大大小小的问题,在遇到问题时,我首先考虑的是凭自己个人的能力去解决,会看一下相关的源码,或者Google一下相关的资料或技术博客。简单来说,我的操作就是将自己的目标进行阶段性的拆分,比如我1-3年需要达到一个什么阶段,3-5年要达到什么阶段,然后在这个阶段里继续进行拆分,树立一个一个小目标,然后构成一个大目标,总目标,这样就会容易达到得多了。按照我个人的理解来说,初级程序员更像学生,而高级程序员则需要拥有“独当一面”的能力,而这个过渡是需要时间的,也是我前两年来努力的方向之一。
2024-11-21 11:47:41 602
原创 微信小程序加密数据解密算法-Java实现,java教程视频百度网盘
param sessionKey 会话密钥@param iv 解密算法初始向量@return 解密后的数据*/try {// 初始化if (null!log.info(“>>>>> 微信加密数据解析结果:{}”, result);log.error(“>>>>> 微信加密数据解析失败:”, e);Hutool工具类解密。
2024-11-21 10:37:33 910
原创 已拿腾讯后台开发岗 offer,简单说下自己的面试经历和学习路线,2024年最新java软件工程师面试题目汇总
你期望的薪资是多少?去的腾讯滨海大厦面试,大楼的现代化程度很高,不过需要提醒一下的是,腾讯的滨海大厦分为南塔和北塔。没有参与开源项目的经验,工作中做的项目也很一般,项目这块我实在没什么太多拿的出手的,不过还是要挖掘一下,毕竟这一块是逃不掉。一个接口原来有性能问题,比如你做了一个小的优化,将其 TP99 的耗时从原来的 500ms 优化至多少 200ms。如果你做的项目中有复杂的地方,即使不是你做的,也可以拿来说,前提是你要搞得非常清楚来。锁的实现原理 互斥锁,自旋锁 ,乐观锁,悲观锁,分布式锁。
2024-11-21 09:15:59 702
原创 基于微信山东济南某停车场车位预约小程序系统设计与实现 研究背景和意义、国内外现状_微信停车场管理系统国内外研究现状
因此,未来在设计和实现基于微信平台的山东济南某停车场车位预约小程序系统时,需要充分考虑这些问题和挑战,采取有效的措施和解决方案,确保系统的成功上线和持续稳定运行。在国外,特别是在欧美等发达国家,智能停车系统的发展同样迅速。为了解决这一问题,越来越多的城市引入了车位预约系统,通过智能化技术管理停车场的车位,提高停车资源的利用率和停车效率。综上所述,基于微信平台开发山东济南某停车场的车位预约小程序系统,不仅能够提升车主的停车体验和管理者的管理效率,还有助于推动智慧城市建设和发展,具有重要的现实意义和应用价值。
2024-11-21 05:49:57 458
原创 基于Java Web的超市订购管理系统的设计与实现 毕业设计开题报告_基于web的购物订购系统的国内外现状
目前,国内外已经有不少超市管理系统投入使用,这些系统在商品管理、销售管理等方面取得了一定的成效。然而,这些系统也存在着一些问题,如界面不够友好、功能不够完善、安全性不够高等。因此,本研究旨在设计并实现一款更加完善、高效的超市订购管理系统,解决现有问题,提高用户体验。传统的超市管理方式已经无法满足现代超市的需求,因此开发一款基于Java Web的超市订购管理系统具有重要意义。本研究的主要内容包括:基于Java Web的超市订购管理系统的设计与实现。项目的界面和功能都可以定制,包安装运行!
2024-11-21 02:36:27 439
原创 十九,2024年最新java面试jvm常见面试题
***///调用zuulRunner执行 route filter/***///调用zuulRunner执行 pre filter/***///调用zuulRunner执行 初始化 ,主要是把servletRequest设置给ReqestContext上下文对象/**@param e*///通过RequestContext设置异常//通过zuulRunner执行 error filter。
2024-11-20 23:14:30 706
原创 你还在为哈希表而烦恼吗?,java高分面试指南
因此只要表中有一半的空位置,就不会存在表满的问题。哈希桶其实可以看作将大集合的搜索问题转化为小集合的搜索问题了,那如果冲突严重,就意味 着小集合的搜索性能其实也时不佳的,这个时候我们就可以将这个所谓的小集合搜索问题继续进行转化,例如: 1. 每个桶的背后是另一个哈希表 2. 每个桶的背后是一棵搜索树。开散列法又叫链地址法 ( 开链法 ) ,首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。
2024-11-20 19:45:50 459
原创 不愧是阿里内部“SpringCloudAlibaba学习笔记”这细节讲解,神了,2024年最新mysql面试题
*分布式任务调度:**提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。去官网学习又无从下手,饱受打击。**模块四 高级特性:**在这一阶段,我们将介绍SpringCloudAlibaba提供的许多高级功能。使用Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将Spring Cloud应用连接到Alibaba的分布式解决方案中,并使用Alibaba中间件构建分布式应用系统。**阿里云对象存储:**阿里云提供的海量、安全、低成本、高可靠的云存储服务。
2024-11-20 16:27:44 395
原创 SpringAop切入点execution表达式详解,中级java工程师面试题及答案
execution(* com.baidu.dao…*表示当前包、子孙包下所有类。
2024-11-20 10:11:46 112
原创 IDEA常用快捷键总结,2024年最新java继承封装多态面试题
Ctrl + Q 光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容。Ctrl + B 进入光标所在的方法/变量的接口或是定义处,等效于 Ctrl + 左键单击(必备)Ctrl + / 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备)Ctrl + Shift + Alt + N 前往指定的变量 / 方法。Ctrl + U 前往当前光标所在的方法的父类的方法 / 接口定义。Ctrl + Y 删除光标所在行的所有内容,Ctrl+X也可以。
2024-11-20 00:49:28 743
原创 docker与gosu,2024年最新java搭建分布式架构
还是自己动手来证实一下吧,我的环境信息如下:操作系统:CentOS Linux release 7.6.1810上面的结果展示了两个关键信息:第一,redis服务是redis账号启动的,并非root;第二,redis服务的PID等于1,这很重要,宿主机执行docker stop命令时,该进程可以收到SIGTERM信号量,于是redis应用可以做一些退出前的准备工作,例如保存变量、退出循环等,也就是优雅停机(Gracefully Stopping);
2024-11-19 23:04:28 597
原创 05-Linux文件系统及操作,2024年最新netty面试题
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
2024-11-19 19:18:35 469
原创 利用STM32F103单片机输出SPWM波_改变spwm波的占空比
/起点位置偏移到 π/2 起点为最大值。//水平线位置 单片机没有负电压 水平线为点值数量的一半。// π/2 内每一个点对应的弧度值。//APB1时钟分频为2 TIM2-7 时钟数为APB1 2倍。//定时器2中断中改变 定时器1的占空比值。//10ms中断一次。
2024-11-08 04:16:31 518
原创 利用nodejs对本地json文件进行增删改查_fs-extra json增删改查
nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查。我们看一下person.json的内容。下面我们来看一下json文件的结果。看,json文件已经被新增进来了。一开始的json文件是这个样子的。
2024-11-08 04:14:31 275
原创 分布式事务Seata源码解析十:AT模式回滚日志undo log详细构建过程_seata undolog表详解
文章目录一、前言二、准备undo log0、undo log 样例1)undo log表结构2)rollback_info(回滚日志数据)1、before image的构建1)业务表元数据信息TableMeta1> Caffeine缓存数据获取2> Caffeine缓存自动刷新2)before image查询SQL3)构建before表记录TableRecords
2024-11-08 04:10:25 187
原创 几个经典基础算法题目_a 算法题目
当构造器被显式调用时,编译器立刻创建了一个未命名的临时对象,同时它也被立刻销毁,这也是为什么输出中的第二行会是“析构器被执行”特别注意,如果对象时动态分配的内存,千万别显式调用析构器,因为delete会调用析构器。当构造器被显式调用时,编译器立刻创建了一个未命名的临时对象,同时它也被立刻销毁,这也是为什么输出中的第二行会是“析构器被执行”特别注意,如果对象时动态分配的内存,千万别显式调用析构器,因为delete会调用析构器。N个人围成一圈,从第一个开始报数,第M个将出局,最后剩下一个,其余人都将出局。
2024-11-08 04:08:25 970
原创 六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序_冒泡排序,快速排序
3、在走的过程中,若end遇到小于key的数,则停下,begin开始走,直到begin遇到一个大于key的数时,将begin和right的内容交换,end再次开始走,如此进行下去,直到begin和end最终相遇,此时将相遇点的内容与key交换即可。在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。5.将key的左序列和右序列再次进行这种单趟排序,如此反复操作下去,直到左右序列只有一个数据,或是左右序列不存在时,便停止操作,此时此部分已有序。
2024-11-08 04:04:21 1037
原创 修改mybatis-generate源码实现实体类加上字段注释_mybatis-generated field
接着我们就需要为我们新增的remarks赋值了,通过查看源码,可以发现这个动作发生在codegen包下面的AbstractJavaGenerator的getJavaBeansField方法,刚好发现作者写插件的时候是有读取字段注释的,为IntrospectedColumn的remarks属性,所以到这里事情就变得简单多了,只要把字段名类型赋值给Field的同时把remarks也赋值一下就搞定了,如图。修改的地方不多,总算实现了自己想要的目的,敢于去尝试,总会得到想要的。
2024-11-08 04:00:21 255
原创 使用C++ 编写嵌入式应用程序_c++嵌入式工程
程序员是在用问题空间的术语描述问题的解(例如“把锁链放在箱子里”),而不是用计算机的术语,也就 是解空间的术语,描述问题的解(例如“设置芯片的一位即合上继电器”)。然而将函数也放在这个包内,结构就变成了新的创造物,它既能描述属性(就像 C中的 struct 能做的一样),又能描述行为,这就形成了对象的 概念。C++的版本为C++11 是ISO 2011年的标准版本,C++14 是2014年的标准版本,C++17 是2017年的标准版本。通俗地讲,C++是以数据为中心的,而C是以流程为中心的。
2024-11-08 03:56:15 935
原创 使用C++ 编写嵌入式应用程序_c++嵌入式工程(1)
所以这些观点都是错误的。据有关文献表明,C++的源代码可能比C++程序多一些,但是目标代码并不比C语言产生的代码大和慢。最多只有10%的差异。
2024-11-08 03:54:15 722
原创 作为一名程序员,如何在周末快乐的学习?
看到 abe 的留言,我深感忧虑。于是不得不从温暖的被窝里爬出来,穿好衣服,打开空调(洛阳的天气在晚上还是很冷的,尽管有暖气),坐到电脑前面。我想,是时候把我从 programcreek 上看到的一篇文章梳理一下分享给大家了。假如你处在可恶的 996 工作制中,甚至更糟,那么难得的周末就是休养生息的最佳时间。与此同时,这也是提高自己的绝佳机会,只有自己强大了,才有资本摆脱繁重的工作。如果你恰好也是这样想的,希望这篇文章能够帮助到你。
2024-11-08 03:52:15 868
原创 从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式_riscv gcc
ELF(Executable Linkable Format)是一种 Unix-like系统上的二进制文件格式标准。ELF文件格式对于底层的操作系统开发非常重要,当程序需要在底层进行优化,调试,排错等操作时,ELF文件可以更好地帮助程序员完成任务。
2024-11-08 03:50:14 991
原创 从应用调用vivi驱动分析v4l2 -- 运行设备(VIDIOC_STREAMON)_v4l2 vb
【代码】从应用调用vivi驱动分析v4l2 -- 运行设备(VIDIOC_STREAMON)_v4l2 vb。
2024-11-08 03:48:14 123
原创 五分钟教会如何计算CAN总线负载率,包学包会_怎么计算总线负载率
开始之前先给一个简单的例子,比如在一个波特率为500Kbps的总线上,理论上每秒钟能够传输500000个BIT,而如实际上只传输了100000个BIT,那么就可以得到此刻的总线负载率为100000/500000=20%。很简单的,对于指定了波特率的某个CAN总线,上述公式的分母T是恒定的。最近某个工作项目中需要计算CAN总线上的负载率,这个东西从字面上来理解是很简单的,就是指总线上所有节点在单位时间内发送的所有数据占整个总线理论带宽的比值,或者说,总线实际数据传输速率与理论上能达到的数据传输速率的比值。
2024-11-08 03:46:12 685
原创 Vue笔记(四)—— Vue生命周期中mounted和created的区别
如果有依赖dom必须存在的情况,就放到mounted(){this.$nextTick(() => { /* code */ })}里面。mounted :挂载之后:已完成HTML虚拟化,创建了el节点 可以操作DOM了。beforeDestroy :摧毁之前:整个vue都处在实时监控空渲染和更新。beforeCreate 创建之前:已经完成了 初始化事件和生命周期。destroyed: 已摧毁,已经摧毁了观察者,子元素和事件监听。created 创建完成:已经完成了 初始化注册和响应。
2024-11-07 14:32:14 325
原创 vue 登录界面记住密码_ant design of vue 记住密码功能
/判断复选框是否被勾选 勾选则调用配置cookie方法。console.log(“清空Cookie”);//传入账号名,密码,和保存天数3个参数。//页面加载调用获取cookie值。//清空Cookie。
2024-11-07 14:30:14 201
原创 vim 操作命令大全_vim命令大全
大致有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码:dos 下是回车加换行,unix 下只有 换行符,mac 下只有回车符。vim提供了:make来编译程序,默认调用的是make, 如果你当前目录下有makefile,简单地:make即可。%f表示文件名,%l表示行号, %m表示错误信息,其它的还不能理解。其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。
2024-11-07 14:26:13 1311
原创 USB接口那么多!!你都认识吗??知道他们的区别吗??_mirco b与 usb a
可能你认为标准USB接口可能很反人类,因为不支持正反插😭😭😭(我也很烦这个点,因为每次都有1/2的几率是盲插可以插对的,但是我偏偏此次盲插都插不进去😡😡),但是其实在其刚刚出现的时候,这种接口是十分先进的,因为这种接口兼容串口并且支持热拔插(意味着你在开机后插上或者拔掉这个接口,电脑都是可以检测到的),而且英特尔还不收专利费,免费的这不香嘛!!!但是,这都快30年了,怎么还不支持正反插😵😵😵😵(这反人类啊)
2024-11-07 14:24:12 1067
原创 uniapp 实现微信小程序全局分享及自定义分享按钮样式_u-button css 宽度
2.CSS 代码如下(这里采用的是 SCSS 的写法)// 导入并挂载全局的分享方法。
2024-11-07 14:22:12 168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人