- 博客(18)
- 收藏
- 关注
原创 Java内存模型
JMM规定了线程的工作内存和主内存之间的交互关系,以及线程之间的可见性和程序的执行顺序。一方面,要为程序员提供足够强的内存可见性保证;另一方面,对编译器和处理器的限制要尽可能地放松。JMM对程序员屏蔽了CPU以及OS内存的使用问题,能够使程序在不同的CPU和OS内存上都能够达到预期的效果。Java采用内存共享的模式来实现线程之间的通信。编译器和处理器可以对程序进行重排序优化处理,但是需要遵守一些规则,不能随意重排序。原子性:一个操作或者多个操作要么全部执行要么全部不执行;可见性:当多个线程同时访问一个共享变
2021-01-11 17:00:46 128
原创 xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器
项目源码官方文档它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管理器,xrepo 能够同时提供更多平台和架构的 C/C++ 包。并且还支持多版本语义选择,另外它还是一个去中心化的分布式仓库,不仅仅提供了官方的 xmake-repo 仓库,还支持用户自建多个私有仓库。同时,xrepo 也支持从 vcpkg/homebrew/conan 等第三方包管理器中安装包,并提供统一一致的库链接信息,方便与第三方项目的集成对接。如果你想要了
2021-01-11 16:30:59 572
转载 讨论最多的Java工具和其他语言,你知道哪几种。
讨论最多的Java工具和其他语言Java在IT社区中经常被讨论,其中之一就是Stack Overflow。我们从“ ????问题与解答”章节中获取了数据,以找出哪些标签最常出现“java”。纵轴表示Java提及的内容,横轴表示标签出现的总数。专家分析该图表可能对想要确保使用正确技术或为他们寻找工具的用户很有用。这些语言很有意思,但这可能是因为人们正在寻找Java与其他语言之间的比较。正则表达式是人们苦苦挣扎的一种利基市场,但他们跻身榜单并不奇怪。Java社区中的热门话题Java讨论我们分析了有关?
2021-01-11 11:18:29 164
转载 进百度公司10道Java面试题虐哭小李,面试直接泡汤(下集)
第六题,当在 HashMap 中放入一个已经存在的 key 时,会发生什么?小李之所以没答对这道题,是因为他没有深入研究过 HashMap 的工作原理。Hash,一般译作“散列”,也有直接音译为“哈希”的,这玩意什么意思呢?就是把任意长度的数据通过一种算法映射到固定长度的域上(散列值)。再直观一点,就是对一串数据 wang 进行杂糅,输出另外一段固定长度的数据 er——作为数据 wang 的特征。我们通常用一串指纹来映射某一个人,别小瞧手指头那么大点的指纹,在你所处的范围内很难找出第二个和你相同的(人的散列
2021-01-11 11:15:44 159
转载 在python经典面试试题中,设计原理,接下来看几行代码怎么实现的
代码实现看完了设计模式的原理,我们下面来试着用代码来实现一下,由于这个设计模式非常简单,这个代码并不长只有几行:from queue import Queuefrom threading import Threaddef producer(que): data = 0 while True: &n
2021-01-11 10:31:35 142
转载 进百度公司10道Java面试题虐哭小李,面试直接泡汤(上集)
有一天,小李告诉我,他去一家公司面试 Java 岗,结果被面试官虐哭了。整整 10 道 Java 面试题,小李一道也没答正确。他沮丧地给我说,“哥,说点我的情况,你愿意听吗?我和一个女孩相处,女孩大我两岁,我非科班。本来打算国庆换一家薪水高点的,好确认关系。我经验不多,技术一般般,之前在一家外包公司,有一个甲方内推,我就鲁莽地把外包的工作辞了,结果没想到面试被虐了,我担心女朋友会不会因为我没有工作和我分手。”听他这么一说,确实挺虐心的。后来我就安慰他,要他端正心态,先把这些面试题整明白,然后继续找工作,不要
2021-01-09 18:47:12 287
转载 2021年了Java是否还有前途?这就话令我们颤抖
2020年 Java达到了一个令人难以置信的里程碑,并达到了25岁的高龄。2021年是否还可以继续延续传奇呢,这样我们很难信服。这让我们开始思考并决定深入研究数据,以一劳永逸地发现Java的普遍状态,并帮助回答您的一些迫切问题。我们发现的某些内容可能不足为奇,但也有一些非常出乎意料的见解。开发者分布在哪里第一个问题是:“大多数Java开发人员都在哪里,我们中有多少人呢?” 我们通过结合可以获取的最准确的信息来进行回答,然后进行推断以得出我们认为是很好的猜测。市场研究和分析团队对开发人员估计模型的最佳估计表明
2021-01-09 18:43:04 687
转载 在python经典面试试题中,有它的存在
生产消费者模式在日常开发当中,从一个线程向另外的线程传输数据又是一件家常便饭的事情。举个最简单的例子,我们在处理网页请求的时候,需要打印下来这一次请求的相关日志。打印日志是一次IO行为,这是非常消耗时间的,所以我们不能放在请求当中同步进行,否则会影响系统的性能。最好的办法就是启动一系列线程专门负责打印,后端的线程只负责响应请求,相关的日志以消息的形式传送给打印线程打印。这个简单的不能再简单的功能当中涉及了诸多细节,我们来盘点几个。首先IO线程的数据都是从后台线程来的,假如一段时间内没有请求,那么这些线程都
2021-01-09 18:36:07 71
转载 985大学生也在学,学c语言到底有什么好,如此让我们疯狂
一、为什么要学 C 语言?首先,我们学的是 Computer Science,而不是 Programming Language,语言真的真的真的不是重点。语言只是工具,工具没有优劣,只有各自适用的场景不同。所以,以下所有讨论皆不涉及语言优劣,一切论述以怎样才是有利于学好 Computer Science 为原则(求生欲满满大学教育,尤其是 985、211 这种国内最顶尖的一批高校,应该注重通识教育而不是专项教育,在专业上更要注重基础、底层、偏向原理。只有掌握了最核心的东西,学起那些偏技能的东西才
2021-01-09 18:29:05 191
转载 我用 Python 找出了删除我微信的所有人并将他们自动化删除了 概述
不知你是否遇到过在微信上给通讯录中的某个人发消息,结果出现了这一幕:平时一直认为自己的心里素质过硬,不过遇到这种情况 …在我缓了半个钟头(半分钟)之后,缓缓拿出了手机,打开微信,找到通讯录中的 ABC,默默地按下了删除按钮,此刻的我心如止水 …好了,我们回到正题,为了避免再次出现上述情况,我决定把微信通讯录中删除了自己的人全部找出来并且删除,之前我已经在网上了解到检查自己的微信是否被删比较好的方式就是转账,通过转账我们可以实现无痕检测。下面我们通过两张图片直观的看一下微信被删前后给别人转账的效果:
2021-01-09 10:42:24 270
转载 Java基本功能即时编译器原理解析及实践
Java基本功能即时编译器原理解一、导读常见的编译型语言如C++,通常会把代码直接编译成CPU所能理解的机器码来运行。而Java为了实现“一次编译,处处运行”的特性,把编译的过程分成两部分,首先它会先由javac编译成通用的中间形式——字节码,然后再由解释器逐条将字节码解释为机器码来执行。所以在性能上,Java通常不如C++这类编译型语言。为了优化Java的性能 ,JVM在解释器之外引入了即时(Just In Time)编译器:当程序运行时,解释器首先发挥作用,代码可以直接执行。随着时间推移,即时编译器逐渐
2021-01-08 17:14:27 269 1
转载 5本经典著作描绘学习路线图带你飞过C++
C++ 难学易用,多少人曾经爱过恨过,相关书籍之多,人人都想找到一份辟邪剑谱这里由浅入深的罗列5本传世经典著作跟随本书单打好基础、开阔视野、学好C++友情链接:https://jq.qq.com/?_wv=1027&k=f1pgUXkM▊《Essential C++中文版》【美】Stanley B. Lippman 著侯捷 译C++快速入门经典大师Stanley代表作之一阅读本书,你可以在很短的时间里熟悉和了解C++。适合那些已经开始从事软件设计,又抽不出太多时间学习新技术的程序员阅读。本书以四个
2021-01-08 16:37:11 216 1
转载 有几个用的 C++ 在线工具就是不一样
支持多种编程语言 * 多个编译器版本在线编译运行的网站。可以在这里做方便、快速地一些小实验、尝试一些编程语言的新特性,比如 C++20。WandboxQuick C++ Benchmark[2]可以快速对一些 C++ 代码片段进行 benchmark 并可视化显示出来。支持多个版本的 clang 和 gcc。背后用的应该是 google benchmark[3] 这个开源库,你也可以在自己的机器上安装这个库。Quick C++ BenchmarkCompiler Explorer[4]支
2021-01-08 15:58:28 484
转载 该是时候捋一捋Java的深浅拷贝了
该是时候捋一捋Java的深浅拷贝了我们在开发、断的刷题、面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝。拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的!在对象的拷贝中,很多初学者可能搞不清到底是拷贝了引用还是拷贝了对象。在拷贝中这里就分为引用拷贝、浅拷贝、深拷贝进行讲述。引用拷贝拷贝的同时会生成一个新的对象引用地址,但是两个最终指向依然是同一个对象。如何更好的理解引用拷贝呢?很简单,就拿我们人来说,通常有个姓名,但是不同场合、人物对我们的叫法可能不同,但我们
2021-01-08 14:19:31 94
转载 去安一个Python大数据分析神器效果如何! python
对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不是很了解,今天小编就推荐一下这个神器。1、Dask是很么?Pandas和Numpy大家都不陌生了,代码运行后数据都加载到RAM中,如果数据集特别大,我们就会看到内存飙升。但有时要处理的数据并不适合RAM,这时候Dask体现到了。Dask是开源免费。它是与其他社区项目(如Numpy,Pandas和Scikit-Learn)协调开发。官方:https://dask.org/Dask支持Pandas的
2021-01-07 18:50:39 136
转载 实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了
实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了小三:“怎么了小二?一副无精打采的样子!”process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NDM0MzkwNw==,size_16,color_FFFFFF,t_70#pic_center)小二:“唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱
2021-01-07 18:47:14 587
原创 Python替代VBA宏Jupyter与 Notebooks嵌入Excel
Python替代VBA宏Jupyter与 Notebooks嵌入Excel以前,Python Jupyter Notebook和Excel之间我们只能选择一个, 但是现在随着PyXLL-Jupyter软件包的推出,可以将两者一起使用,在本文中,我将向你展示如何设置在Excel中运行的Jupyter Notebook。 在这两者之间共享数据,甚至可以从Excel工作簿调用Jupyter笔记本中编写的Python函数!开始首先,我们要在Excel中运行Python代码,需要使用PyXLL包。 PyXLL使我们可
2021-01-07 17:00:15 476
原创 Python 为什么没有 void 关键字?
void 是编程语言中最常见的关键字之一,从字面上理解,它是“空的、空集、空白”的意思,最常用于表示函数的一种返回值类型。维基百科上有一个定义:The void type, in several programming languages derived from C and Algol68, is the type for the result of a function that returns normally, but does not provide a result value to its
2021-01-06 11:10:28 78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人