-
用了Stream后,代码反而越写越丑?
所属栏目:[语言] 日期:2021-11-06 热度:97
Java8的stream流,加上lambda表达式,可以让代码变短变美,已经得到了广泛的应用。我们在写一些复杂代码的时候,也有了更多的选择。 代码首先是给人看的,其次才是给机器执行的。代码写的是否简洁明了,是否写的漂亮,对后续的bug修复和功能扩展,意义重大[详细]
-
C#基础 理解装箱与拆箱
所属栏目:[语言] 日期:2021-11-06 热度:148
前面我们讲到 .NET 平台支持的两大数据类型:值类型和引用类型。值类型比引用类型更高效,因为它没有指针引用,不用分配在托管堆中,也不用被 GC 回收。但有时候你可能偶尔需要将一种类型的变量表示为另一种类型的变量。为此,C# 提供了装箱和拆箱的机制。[详细]
-
Golang channel 使用结论
所属栏目:[语言] 日期:2021-11-06 热度:162
不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang 的哲学是通过 channel 进行协程 (goroutine) 之间的通信来实现数据共享: Do not communicate by sharing memory; instead, share memory by communicating. 这种方式的优点是通过提[详细]
-
手机摄影软件推荐 10分钟让你拍照技巧逼近大师实例教程
所属栏目:[语言] 日期:2021-06-08 热度:120
在这个摄影软件横行网络的年代,如果你的手机里还没有装一款好用的摄影软件,那摄影的功力就算比别人稍微强一点,拍出来的照片可能也早就被甩几条街啦!想要在10分钟的最短时间内快速提升摄影技巧?那摄影工具、色彩、构图一样都少不了,史上最简单易学的摄[详细]
-
通过编写一个有趣的游戏学习 C 语言
所属栏目:[语言] 日期:2021-06-08 热度:192
从写一个函数来选择一个随机数字来开始猜数字游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 maxval 之[详细]
-
Python中的函数分析:参数有冒号,声明后有- 箭头
所属栏目:[语言] 日期:2021-06-08 热度:57
我在查看python的fixture源码时发现 fixture的方法定义形式如下: deffixture( fixture_function:Optional[_FixtureFunction]=None, *, scope:Union[_Scope,Callable[[str,Config],_Scope]]=function, params:Optional[Iterable[object]]=None, autouse:bo[详细]
-
Python爬虫定时计划任务的几种常见技巧
所属栏目:[语言] 日期:2021-06-08 热度:143
1.方法一、while True 首先最容易的是while true死循环挂起,不废话,直接上代码: importos importtime importsys fromdatetimeimportdatetime,timedelta defOne_Plan(): #设置启动周期 Second_update_time=24*60*60 #当前时间 now_Time=datetime.now() #[详细]
-
分析SpringFramework与IOC依赖查找
所属栏目:[语言] 日期:2021-06-08 热度:94
1. 谈谈SpringFramework / 说说你理解的SpringFramework SpringFramework 是一个开源的、松耦合的、分层的、可配置的一站式企业级 Java 开发框架,它的核心是 IOC 与 AOP ,它可以更容易的构建出企业级 Java 应用,并且它可以根据应用开发的组件需要,整合[详细]
-
分析 Java 并发下的乐观锁
所属栏目:[语言] 日期:2021-06-08 热度:135
聊完原子操作了,我们进入正题。 大家都知道,一般而言,由于多线程并发会导致安全问题,针对变量的读和写操作,都会采用锁的机制。锁一般会分为乐观锁和悲观锁两种。 悲观锁 对于悲观锁,开发者认为数据发送时发生并发冲突的概率很大,所以每次进行读操作[详细]
-
魔法方法走进Python进阶学习大门
所属栏目:[语言] 日期:2021-06-08 热度:64
collection.len()是面向对象语言的写法,len(collection)是Python语言的写法,这种风格叫做Pythonic。从前者到后者,就像变魔术一样,一瞬间让人眼前一亮。这个魔术就是Python魔法方法,或者叫双下方法,它是用双下划线开头和双下划线结尾的特殊方法,比如[详细]
-
小白篇:JDK8的日期处理API-必知必备
所属栏目:[语言] 日期:2021-06-08 热度:89
副标题#e# publicstaticInstantnow() publicstaticInstantnow(Clockclock) //根据毫秒生成Instant publicstaticInstantofEpochMilli(longepochMilli) //根据秒生成Instant,外附加纳秒单位的数值 publicstaticInstantofEpochSecond(longepochSecond,longnan[详细]
-
Python骚操作从列表推导和生成器表达式出发
所属栏目:[语言] 日期:2021-06-08 热度:129
列表推导 Python语言魅力在于简洁,这能从最常见的创建列表体现出来,比如我们想把字符串abc转换成新列表[a, b, c],常规写法: symbols=abc codes=[] forsymbolinsymbols: codes.append(symbol) print(codes)#[a,b,c] 用到了for循环和列表append方法。实[详细]
-
Java比C++慢?看了测试结果,推翻了我的认知,不得不说JIT真的强
所属栏目:[语言] 日期:2021-06-08 热度:127
编程语言根据其抽象级别进行分类。我们区分高级语言(Java,Python,JavaScript,C ++,Go),低级语言(汇编程序),最后是机器代码。 每个高级语言代码(例如Java)都需要转换为机器本地代码才能执行。该翻译过程可以是编译或解释。但是,还有第三种选择。试图[详细]
-
利用C语言中的Setjmp和Longjmp,来完善异常捕获和协程
所属栏目:[语言] 日期:2021-06-08 热度:191
在 C 标准库中,有两个威力很猛的函数:setjmp 和 longjmp,不知道各位小伙伴在代码中是否使用过?我问了身体的几位同事,一部分人不认识这两个函数,有一部分人知道这个函数,但从来没有使用过。 从知识点范围来看,这两个函数的功能比较单纯,一个简单的[详细]
-
一键迈向二次元!用Python将自拍转换为卡通风格
所属栏目:[语言] 日期:2021-06-08 热度:200
第一个步骤是载入图片。定义read_file函数,其中包含cv2_imshow,来载入我们在Google Colab中选择的图片。 defread_file(filename): img=cv2.imread(filename) cv2_imshow(img) returnimg 调用创建的函数来载入图像: uploaded=files.upload() filename=ne[详细]
-
Rust不应当开发Web API
所属栏目:[语言] 日期:2021-06-08 热度:167
Rust 有大量的 Web 服务框架、数据库连接器和解析器。但搭建身份验证服务方面只有非常低层次的组件。Node.js 有 passport.js,Rails 有 devise,Django 有 开箱即用的身份验证模型,在 Rust 中,你需要学习如何将共享 Vec 转换到底层加密库才能构建这个系[详细]
-
怎样在Java Pojo转Jsoy时忽略掉一些属性
所属栏目:[语言] 日期:2021-06-08 热度:108
在Java开发中有时候某些敏感信息我们需要屏蔽掉,不能被消费这些数据的客户端知道。通常情况下我们会将其设置为null或者空字符,其实还有其它办法,如果你使用了Jackson的话。接下来我将以一个实际场景来告诉你可以怎么做。 2. Jackson 如何忽略字段 这里[详细]
-
分析Dictionary实现日志数据批量插入
所属栏目:[语言] 日期:2021-06-08 热度:99
副标题#e# 最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然不合适,肯定是需要批量保存,提高效率。 问题窥探 首先,我想到的是Dictionary,对于C#中的Dictionary类相信[详细]
-
带着10万字的笔记,C++优化系列来了!
所属栏目:[语言] 日期:2021-06-08 热度:160
不知不觉又到周一了,你是不是还在床上?看到这条推送的时候,如果你已起床,请在评论区扣1,让程序喵看看有多少人和我一样勤奋!最近C++技术交流群发现了很多水平很高的朋友,欢迎大家来加喵哥微信,进群一起讨论计算机知识! 近期我会推出一系列C++优化文章[详细]
-
花了两天,总算把 Python 的 Setup.py 给整明白了
所属栏目:[语言] 日期:2021-06-08 热度:140
1. 为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包。 打包,就是将你的源代码进一步封装,并且将所有的项目部署工作都事[详细]
-
速度最迟钝的动态编程语言,你应该用过
所属栏目:[语言] 日期:2021-06-08 热度:99
在电子学中,速度和性能转化为一个特定芯片可以拥有的晶体管数量。根据摩尔定律,这个数字每隔两年就会往上翻一番。这就是为什么你的手机比1990年代的房间大小的超级计算机快得多。 回到计算机科学,速度快的代码和速度快的电脑是有区别的。速度慢的程序和[详细]
-
给小白讲Java中两大神兽,附带面试题
所属栏目:[语言] 日期:2021-06-08 热度:136
Java 程序是由若干个类组成的,类也是面向对象编程思想的具体实现。 以下为类的定义: publicclassUser{ //私有属性 privateLonguserId; privateStringname; privateIntegerage; //构造方法 publicUser(){ } //有残构造方法 publicUser(LonguserId,Stringn[详细]
-
为什么有些高级开发人员不感冒Python
所属栏目:[语言] 日期:2021-06-08 热度:61
遵循此答案,我决定汇总使高级开发人员避开动态键入语言的主要原因,并在此处列出这些理由以消除误解。 为了更好地解决此问题,由于Python的迅猛发展,我们将以Python作为动态类型语言的示例。 动态类型 在这种情况下键入与击键无关。这个词是从数据类型派[详细]
-
即使技术强大,面试时一问这个必挂!!
所属栏目:[语言] 日期:2021-06-07 热度:175
本文我们一起讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是 java.lang.Class类 的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开[详细]
-
分析C# ObservableCollection和List
所属栏目:[语言] 日期:2021-06-07 热度:88
一、ObservableCollection和List的区别 1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPropertyChanged Collection:为泛型集合提供基类。 INotifyCollectionChanged:将集合的动态更改通知给侦听器,例如,何时添[详细]