首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这段代码我猜76.85%的Java程序员都看不懂

Java 8 提供的一系列的语法糖和特性让Java又焕发了青春。虽然现在Java 16已经发布数月,Java 17还有不到一个月时间也要面世了。但是不少开发者依然使用着Java 8 。...你发任你发,我用Java 8。听说你Java 8 用的很溜?...来用这段代码考察一下你的Java 8的熟练度,不要怀疑,这段代码是可执行的: public interface O { interface $ { void $()...} void O($ o); default O O() { return $::$; } } 这段代码非常抽象...不过通常我们不会这样写,写这样的代码可能会被同事打死。能写出这样的Java代码也需要一定的创造力,而阅读这样的代码需要一定的忍耐力。搞清楚这几行代码花了我近1小时的时间,你需要多长时间呢?

41520

看不懂的 build.gradle 代码

但是,不知道你们会不会跟我一样,在 github 上 clone 大神的项目后,总会发现他们的 build.gradle 里多了很多平常没看见过的代码,而且还看不懂代码要做什么; 或者是比如当需要进行签名时...---- 系列索引 build.gradle系列一:看不懂的build.gradle代码 build.gradle系列二:学点Groovy来理解build.gradle代码 build.gradle...,参照着注释看代码就行,是不是发现有很多代码平时都没看见过。...locationNum=12 apply plugin: 'me.tatarka.retrolambda' //这里是groovy的代码了,定义了一个获取时间的方法,groovy是兼容java,它可以直接使用...releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) } //file()是Project.java

1.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java并发基础,不怕你看不懂

    Java 程序的进程(Java 的一个程序运行在系统中)里至少包含主线程和垃圾回收线程(后台线程),你可以简单的这样认为,但实际上有四个线程(了解就好): [1] main——main 线程,用户程序入口...先来一段代码,通过并行和串行来分别执行累加操作,分析:下面的代码并发执行一定比串行执行快吗?...为了解决访问共享资源错误或数据不一致的问题,人们引入了临界区的概念:用以访问共享资源的代码块,这个代码块在同一时间内只允许一个线程执行。...Java 并发包(java.util.concurrent,JUC)中大多数类注释都写有:@author Doug Lea。...Doug Lea 在当大学老师时,专攻并发编程和并发数据结构设计,主导设计了 JUC 并发包,提高了 Java 并发编程的易用性,大大推进了 Java 的商用进程。

    50030

    如何让别人看不懂你的代码

    那么换个角度,如何让别人看不懂你的代码,如何让你的代码只有你能维护,可能更容易理解吧~ 命名 获取用户上次登陆使用的设备,这个简单的名字 getUserLastTimeLoginDeviceUsed,...getUserShangCiLoginseBei,别人看代码的时候应该也开始看不懂啦 别人嫌名字太长的缘故,非让改。 改就改 getULTLDU,来吧哥们儿,这个够短吧~ 还是长?...一撸袖子就是干,尽量别使用局部变量,如果是个Java程序员,可以试试看用静态替换下,Cpp程序员可以狠狠心,创造2w个全局变量,如果起名24个字母不够用,试试英文词典,别管词义,能用就行。...注释 注释里可能需要一点社会工程学知识 有如下选择,别人看不懂代码的可能性依次增加 1、不加注释 2、加上注释,注释内容放一串所需解释代码的伪代码,再或者写一篇800字儿散文 3、写注释的时候记住...可能IDE有检测功能,别慌,可以试着调用它,这样能唤醒一大片无用代码~ 最后,记住,把Author 默默删掉,循序渐进修改代码,等它们慢慢分布到整个业务系统的各个模块,别急着上来就让别人看不懂,要不很容易被重构掉的

    2K40

    如何让别人看不懂你的 JS 代码

    这是实际上属于一种代码混淆技术,可以让们的代码更难阅读和逆向,同时也能租网一些恶意爬虫和自动化分析。天我就带大家来看看还有哪些其他能让 JavaScript 代码变得难以分析的代码混淆技术。...我们以下面这段代码为例: console.log("ConardLi",666); 通过一些转换,它可以变成下面这个样子: 怎么做到的呢?...死代码注入 死代码其实指的就是一些无法访问的代码,我们可以在原本的代码上额外注入一些永远无法访问的代码来让代码难以阅读,但是同时也会让代码变得更大。...,其实仔细分析就会发现其余插入的代码都是无法运行的: 最顶层包了一个 IIFE,然后有一个 a 函数,a、b 两个参数。...但是如果是庞大的业务代码,这会让我们的代码变得非常难以阅读。 代码压缩 下面,综合利用一下几种技术,执行: defendjs --input conardli.js --output .

    1.1K31

    如何写出让人看不懂的MATLAB代码

    前面教人写出排版工整的代码,后面又教人写出让人看不懂代码,这不是神经错乱吗?答案显然是否的 。...虽写出可读性强的代码是作为程序员最基本的素养,对代码的维护也是大有裨益,但有些情况下写出让人看不懂代码显然也是很有必要的。...如果分享的源代码让人看都看不懂,更别说后面的封装之后的代码了,这也是写出可读性极差代码的必要性之所在。...其实写出可读性差的代码其实是非常容易且与生俱来的,咱们可以想想咱们最开始写代码的时候那种意气风发、行云流水,就要那种感觉,那种自己写的过两天来看就看不懂那种。...代码的可读性的好坏与四个因素息息相关:一、代码注释;二、变量命名;三、代码中一切可读的文本字符信息;四、代码块的布局。 咱今天分享的minify就能帮大家完成四个因素中的三个,即一、二、四。

    68840

    看不懂代码?AI给你做翻译,说人话的那种

    这一次,它不再是帮你写代码了,而是充当一个“翻译官”: 用“人话”告诉你,这段代码到底写了啥。...瞧,只需要选中一段代码,然后点一下旁边的“Ask Copilot”,就会快速得到代码的“人话版”解释: 示例中的代码片段是这样的: if len(l)=0:     return None else...不仅是Copilot,“AI给代码做注释”这事最近在Reddit也比较火。 有位贴主上传了他用AI技术,给代码做注释的demo。...不同于Copilot的Explain Code,这个AI不会非常详尽地去描述每行代码运行的过程。 而是概括性地去讲“这段代码是干嘛的”。...以下面这个代码片段为例: 在AI“解读”过后,它就会告诉你: 这段代码是用来从GitHub的Repo中收集数据。 会返回一个数据的矩阵。

    30120

    我很想学编程,但看不懂编程代码怎么办?

    从事编程开始十几年,面试过很多初级学习编程的人,几乎每个人都有一种所谓的编程情怀,觉得编程非常有意思,想着去学习编程,所以开始看不懂编程代码是一件非常正常的事情,很多人学了几个月的编程头脑还是浆糊状态也是特别正常...,既然要学习编程就要拿出学习编程的决心和毅力,正是因为看不懂才会绞尽脑汁的学习,并且不断变换自己的学习思路,来完成编程学习路子上一个个的困难。...学习编程关键在于内在因素,很多人觉得学习编程就需要花大价钱,现实中未必是真实的,很多对编程感兴趣的大学生通过四年的大学学习,就把基本功弄得非常扎实,并且通过开源社区获取了大量的代码进行实践研究,有很大一部分还没出校门就把自己的工作搞定了

    2.4K30

    买了很多书,看了很多教程,仍然看不懂开源代码......

    编写的)这样的开源项目的源码你应该认真的去研读一下;如果你是做 Windows C/C++ 客户端或者一名 QT 客户端开发人员,那么像 MFC、DUILIB、金山卫士等源码,你可以拿来读一读;如果你是 Java...第二种方式,说的是先熟悉代码的整体结构,再去依次搞清楚各个模块的代码细节,学会记录。 一边学习代码一边记录,是不错的学习方法。...三、阅读代码的心态 最后,我想说的是阅读代码的心态。...再或者在阅读几个源码文件或者模块的代码时,因为看不懂就放弃了。...这些设计思想都被后来的各种软件框架借鉴和继承,例如 QT 和 Java 中的序列化和反序列化。

    1.1K22

    看不懂代码?带你回顾单片机常用C语言知识点

    ); return 0; } 在这个代码中,#define TEMP 10 定义了一个常量 TEMP,其值为 10。...使用 #define 定义常量或宏可以提高代码的可读性和维护性,同时方便统一修改常量的值。 三. 条件编译 条件编译是一种在编译时根据条件选择性地包含或排除部分代码的处理方法。...常用的条件编译指令有: #ifdef:如果给定的标识符已经定义,则编译下面的代码块。 #ifndef:如果给定的标识符没有定义,则编译下面的代码块。...#else:与 #if 或 #elif 配合使用,表示条件不成立时执行下面的代码块。 #endif:结束条件编译块。...结构体在STM32单片机项目中通常用来表示寄存器映射、外设配置等方面,帮助组织和管理代码。 七.

    15410

    Babel配置傻傻看不懂

    答:我们上文提到,Babel在解析是时候会通过将code转换为AST抽象语法树,本质上是代码语法结构的一种抽象表示,通过以树?...的话,自己是无法完成翻译,而一个完整的“翻译”的过程是需要走完解析、转换、输出才能完成整个闭环,而这其中的每个环节都需要借助babel以下这些API @babel/parser: babel解析器将源代码...code解析成 AST @babel/generator: 将AST解码生成js代码 new Code @babel/traverse : 用来遍历AST树,可以用来改造AST~,如替换或添加AST原始节点...:啊宽同学:你不是说@babel/parser是也将源代码code解析成 AST吗?为啥@babel/core也是?...usage: 打包时会自动根据实际代码的使用情况,结合 targets 引入代码里实际用到部分 polyfilll模块 false: 不会自动引入 polyfilll 模块,对polyfilll模块屏蔽

    1.3K43
    领券