学习笔记

Java反射机制

 Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。 (1)反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。 (2)通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类。 (3)使用反射机制能够在运行时构造一个类的对象、判断一个类所具有的成员变量和方法、调用一个对象的方法。 (4)反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。 ...

今日头条在消息服务平台和容灾体系建设方面的实践与思考

业务背景# 今日头条的服务大量使用微服务,容器数目巨大,业务线繁多, Topic 的数量也非常多。另外,使用的语言比较繁杂,包括 Python,Go, C++, Java, JS 等,对于基础组件的接入,维护 SDK 的成本很高。 引入 RocketMQ 之前采用的消息队列是 NSQ 和 kafka , NSQ 是纯内存的消息队列,缺少消息的持久性,不落盘直接写到 Golang 的 channel 里,在并发量高的时候 CPU 利用率非常高,其优点是可以无限水平扩展,另外,由于不需要保证消息的有序性,集群单点故障对可用性基本没有影响,所以具有非常高的可用性。我们也用到了 Kafka ,它的主要问题是在业务线和 Topic 繁多,其写入性能会出现明显的下降,拆分集群又会增加额外的运维负担。并且在高负载下,其故障恢复时间比较长。所以,针对当时的状况和业务场景的需求,我们进行了一些调研,期望选择一款新的 MQ 来比较好的解决目前的困境,最终选择了 RocketMQ ...

Python 的多线程是鸡肋?

“唉,还没毕业就受到甲方的支配,等以后进了公司可咋整啊。”小白嘴里这么吐槽,但心理上还是不敢怠慢,只能恋恋不舍地关掉眼前的游戏,打开了 Python 代码思考了起来。 “现在的程序是单线程的,那就用多线程模型来优化吧,嘿嘿,我太机智了!”小白打心底感谢前段时间里学习到的线程的知识。“Python 里好像是 threading 模块负责多线程的,就决定是你了,threading !” 花了两三个小时,小白终于把程序改好了,他长舒一口气,点击 Run ,开始测试运行时间。 “woc!怎么运行时间还变长了?”看着屏幕上显示的测试结果,小白傻眼了,这多线程怎么不顶用?自己明明是按官方文档来的啊! ...

装箱与拆箱的“把戏”

 “老生常谈”值类型与引用类型  众所周知,.NET类型系统由 类、结构、枚举、接口 和 委托 组成。而根据内存分配的方式来区分,所有的类型又被分为 值类型 与 引用类型。...

Java线程切换(一)

本文由言念小文原创,转载请注明出处) 一 前言 有Android开发经验的同学都清楚,UI的更新必须在主线程中进行,且主线程不能被阻塞,否则系统ANR异常。我们往往做一些数据处理是耗时操作,必须要在子线程中进行,然后再将处理后的数据切换到主线程去更新UI,这便是线程切换。 线程切换的本质是“数据的切换”,即将数据从一个线程传递到另一个线程。 二 案例描述 老风格,先给出场景案例,然后通过线程切换实现该案例。 案例:在线程A中调用api发送一段数据data,data最终通过线程切换由线程B执行数据处理动作。 ...

基于深度学习方法的dota2游戏数据分析与胜率预测(python3.6+keras框架实现)

 很久以前就有想过使用深度学习模型来对dota2的对局数据进行建模分析,以便在英雄选择,出装方面有所指导,帮助自己提升天梯等级,但苦于找不到数据源,该计划搁置了很长时间。直到前些日子,看到社区有老哥提到说OpenDota网站(https://www.opendota.com/)提供有一整套的接口可以获取dota数据。通过浏览该网站,发现数据比较齐全,满足建模分析的需求,那就二话不说,开始干活。...

tp5底层源码分析之------tp5.1类的自动加载机制

tp框架作为国内主流框架,目前已经发布了6.0版本,相当于3.*版本是进行了重构,今天我们从源码的角度来研究下tp5.1自动加载的实现 作为单入口框架,从入口文件看起,入口文件在public/下,那么为什么大多数框架要把入口文件放到子文件夹下面呢?  第一,为了动静分离,因为现在的tp框架一般都是单入口,既然是单入口,那么必然要做rewrite,如果把静态文件和程序文件放到一起。 框架路由势必要对每一个请求进行筛选,所以这些框架不约而同的把资源文件和程序文件区分开来,放在了不同的文件夹下面,所以从整体 ...

net core跨平台应用研究-ubuntu core下配置.net core运行时

年初研究了一阵子.net core跨平台应用,先后发表了几篇应用研究的文章。因工作原因,忙于项目上线,有一阵子没来博客园写文章了。最近项目基本收尾,抽空翻了下自己的博客,寥寥几篇文章,真让人汗颜。 近半年来,实施项目的是完全基于.net core进行开发,部署运行于ARM Cortx-A7芯片上的嵌入式Linux系统中,直接原生应用部署,是一个典型的跨平台开发应用。项目实施中,也积累了不少跨平台应用的心得,拟抽空将一些与项目业务无关的内容进行整理分享,以期对各位使用.net core平台开发的朋友能有一定的帮助。 ...

Nginx 了解一下?

Nginx 适用于哪些场景? 为什么会出现 Nginx? Nginx 优点 Nginx 的编译与配置 Nginx 适用场景 如图所示,一个请求会先经过 Nginx 到达应用服务层,然后再去访问数据层(比如 Redis、MySQL 等),提供基本的数据功能。我们的应用服务因为要求开发效率是非常高的,所以它的运行效率是很低的,它的 qps、tps或者并发都是受限的,所以我们需要把很多这样的应用服务组成集群,向用户提供高可用服务。而一旦很多服务构成集群的时候,我们需要 Nginx 具备反向代理功能,可以把动态请求传递给应用服务。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程