学会编程, 而不是学会Java

1、21 天学会 Java 2:开启编程之旅 本博客提供了一个21天系统学习Java编程语言的详细计划,涵盖Java基础语法、面向对象编程、Java类库应用以及高级编程技术如网络通信、数据库处理和服务器端开发。适合编程新手和有经验的开发者,帮助读者通过理论与实践结合,逐步掌握Java核心知识和应用技巧。 阅读详情

由于《我是一个线程》这篇文章的广泛传播, 很多加了我的QQ和微信,交流编程学习的问题。


但是我发现其中很多初学者,尤其是半路出家的遇到了一个很普遍的情况: 那就是只学会了Java 的语法, 而没有学会编程。 

我拿一个例子来说一下, 下面是一个SimpleList 的类, 模仿java 的ArrayList,   已经定义好了接口,需要实现具体的业务:

/**

 * 自定义的一个模仿ArrayList的类, 你需要实现其中的add, get, remove , 等方法

 * @author 刘欣

 */

public class SimpleList<T>{

    private Object[] elementData;

    private int size=0;    

    public int size() {            

        return -1;

    }

    public SimpleList(){        

    }

    public boolean isEmpty() {    

        return false;

    }    

    public boolean add(T e) {

        return false;

    }

    public boolean remove(Object o) {

        return false;

    }

    public T get(int index) {

        return null;

    }

}

然后我拿这个类给几个人测试, 我发现很少人能够顺利的把这几个方法给实现了, 哪怕是非常粗糙的实现也没有。 

感兴趣的同学也可以用你擅长的语言尝试一下。 

这个题目不要求实现复杂的算法, 也不需要进行面向对象的设计,也不需要考虑多线程下的线程安全, 况且已经给了提示:

用一个Object数组来实现。 

如果说有一点语法层面的难度, 那就是使用了一点泛型。 

其实如果我把泛型去掉, 估计他们还是实现不了, 因为这个类的核心逻辑不是泛型。 

这个SimpleList 要求的就是能对一个数组进行操作,核心就两点:

1. 能往数组添加数据, 记录size ,如果数组空间不够了, 需要增大空间

2. 能删除数组指定位置的数据,并且把之后的数据往前挪动。

难吗? 这其实是编程序的基本素养, 编程的本质,和用什么语言实现没有关系。

如果不是Java , 学的是C#, 或者Python,  我估计结果也差不多。

我想可能是不少人都缺乏最最基本的数据结构和算法的训练, 还没有养成面向计算机的逻辑思考的方式。 

解决的办法其实也很简单:就是多实践,多编码, 我推荐多做数据机构和算法的习题, 这也是我个人的经验, 大学时把数据结构的习题都做一遍, 后来工作中只要不是设计算法, 基本上没要难住我的。


如果以后想选择码农作为职业, 这种编程能力是必不可少的, 所以在校的同学, 不妨从现在就开始, 把缺失的能力不上。 



“码农翻身” 公共号 : 由工作15年的前IBM架构师创建,分享编程和职场的经验教训。

长按二维码, 关注码农翻身

0?wx_fmt=jpeg

浅谈向量检索 文章目录浅谈向量检索背景什么是向量什么是向量检索距离度量检索方法ANN的基本思路举个容易理解栗子举个正常的例子具体算法树方法KD-TreeAnnoyHash方法LSH 算法矢量量化方法乘积量化码本的建立码字搜索算法倒排乘积量化临近图方法HNSW 算法朴素想法Delaunay算法NSW 主要思想NSW构图NSW查找参考 浅谈向量检索 背景 索引一直被认为是检索引擎最重要的组成部分,之所以数据库能够快速的查询出来结果。系统设计中很多常见的多种数据结构都是为了快速命中索引设计的, 比如 红黑树、跳跃表、倒排索引、 阅读详情

相关推荐

kepserverEX6创建tcpserver接入自有协议(使用ucon接入)

kepserverEX6创建tcpserver接入自有协议

qq_38388813的博客 1632

学编程能直接学java吗_编程零基础,想直接学java

可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。每一种语言的程序设计思想大同小异,只是一些由语言特性的而带来的细微差别 ,比如Java中的Interface,你几乎在以前的学习中没有碰到过。以下我仔细给你说几点 :1。我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所...

weixin_29620579的博客 299

零基础也能搞定!华为USG6000V防火墙WEB管理界面开启教程

本文详细介绍了华为USG6000V防火墙WEB管理界面的开启教程,从环境准备、网络配置到防火墙初始化,逐步指导用户完成图形化管理界面的搭建。特别适合零基础用户快速掌握企业级防火墙的可视化操作,提升安全管理效率。

grape的博客 786

程序员除了会CRUD之外,还应该知道什么叫CQRS!

阅读本文约需要5分钟今天主要跟大家分享一下什么是 CQRS,以及在项目中如何去使用。1. CRUD系统我们平常最熟悉的就是三层架构,通常都是通过数据访问层来修改或者查询数...

4214

搞定最强大模型Gemini学生订阅,白嫖一年,包教包会

白嫖现在最强大模型

BUG猿的博客 2万+

【Agent从入门到实践】40 容错优化:异常处理、重试机制、降级策略

各位小伙伴,咱们的多Agent框架一路优化到现在,决策快、执行效率高、资源用得省,看似啥都行,但只要一遇到网络波动、工具故障、数据异常调用web_search工具时网络超时,整个检索任务直接失败,写作Agent没数据可用向量库连接异常,向量检索直接崩掉,依赖检索结果的Agent全趴窝单个Agent执行出错,整个并行任务流程直接中断,前功尽弃高并发下部分工具调用失败,框架没有备用方案,只能返回任务失败说白了,咱们之前的框架只有正常执行逻辑,没有异常兜底逻辑。

人工智能AI技术 910

一个牛人给JAVA初学者的建议

给初学者之一:浅谈java及应用 学java不知不觉也已经三年了,从不知java为何物到现在一个小小的j2ee项目经理。虽说不上此道高手,大概也算有点斤两了吧,每次上网,泡bbs逛论坛,没少去java相关的版面,总体感觉初学者多,高手少,精通的更少。由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间,还有一个很重要的原因就是java这门语言更适合商业应用,所以高校里大部分博士老...

自学编程的小白 2万+

小论文/大论文必备 | YOLO多模态目标检测、绘制曲线对比图 | 引入多种绘制曲线对比图,包括mAP0.5,mAP0.5:0.95,Loss损失变化的曲线对比

本文通过可视化方法分析YOLO多模态模型的训练过程,对比不同实验的检测精度和损失函数变化。主要内容包括:1)绘制mAP@0.5和mAP@0.5:0.95曲线评估检测精度;2)分析边界框回归损失(box_loss)、分类损失(cls_loss)和分布式损失(dfl_loss)的收敛趋势;3)提供完整的Python代码实现,支持多实验对比,可生成高清曲线图。该方法能直观展示模型训练效果,便于优化策略评估和参数调优。

Ai缝合怪、助力小伙伴高效发论文 261

不会英语能学Java吗?

不会英语能学Java吗?其实是可以学的,只要掌握方法就行。举个例子:在学习第一个JAVA程序时是:要求输出字符“ABC”1、建个类规则是:public class a{},写方法:public class a{public static void main(String[]args){system.out.println("ABC"); }},这样就写出了程序,当然您也可以把ABC改成其它的,输出

zhanza4025的博客 9061

2023华为od机试C卷【最富裕的小家庭】C++ 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 1239

1、开启 Microsoft Power Automate 自动化之旅

本文介绍了 Microsoft Power Automate 的基本概念和其在信息时代自动化需求中的重要作用。Power Automate 是 Power Platform 的一部分,能够通过无代码/低代码的方式自动化处理重复性任务,例如邮件处理、文件复制等,从而提升工作效率。文章还详细讲解了 Power Automate 的核心术语、登录方式、创建第一个流程的操作步骤,并通过示例帮助用户快速上手。无论是终端用户还是管理员,都可以通过本文了解如何利用 Power Automate 实现业务流程自动化。

corn8的博客 169

学习Java编程语言难不难

学习Java编程语言难不难这是很多希望学习计算机软件开发的人比较纠结的问题。实际上,Java语言是非常易学的,Java语言机遇C语言,却又高于C语言。Java语言简单易学的特性使得大多数程序员很容易学习和使用Java。Java 编程语言是个简单语言,并获得了广大软件开发商的认同,应用非常广泛。要说Java难不难?需要从Java的起源了解Java语言在1990年最早起源于SUN公司的一个内部项目。项...

weixin_41780944的博客 6157

微信小程序 - 实现大文件上传分片/切片+本地选择文件上传超大文件,小程序大文件切片上传+断点续传+上传进度条+失败自动重传完整运行示例源码,支持图片、视频、文档各种文件(支持上传单个文件或批量上传)

微信小程序实现大文件上传,实现分片大文件上传,微信小程序 分片 断点续传 大文件上传,微信小程序实现大文件上传 分片上传 进度条,小程序文件分片上传,微信小程序如何上传很大的文件,在选择文件后,按指定大小将文件切割成独立的文件片,并逐片上传,uniapp 微信小程序上传大文件如何切片,微信小程序实现大文件分片上传、断点续传、秒传,解决大文件上传问题,大文件上传如何做断点续传,微信小程序wx.uploadFile,小程序上传视频,小程序上传文档,实现大文件上传(切片上传)实现大文件上传到服务器教程,支持批量多

🏆 前端领域优质创作者 1万+

【JAVA 进阶】重生之我要学会 JUC 并发编程

摘要 本文深入探讨Java并发工具包(JUC)的核心技术及应用。首先介绍并发编程的基本概念与挑战,包括并发与并行的区别、Java内存模型和happens-before原则。然后详细分析JUC包的整体架构,包括原子类、锁机制、并发容器和线程池等组件。重点解析CAS(Compare-And-Swap)机制原理及其在原子类中的应用,涵盖基本类型、数组、引用类型和字段更新器等原子类实现。文章还讨论了CAS的ABA问题及其解决方案,并展示如何利用AtomicStampedReference解决该问题。通过理论结合实践

CodeSuc 的技术博客 2102

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何快速学会java编程?

随着互联网时代的发展,越来越多的人开始学习和使用java语言来进行编程开发,其中不乏有不少零基础的同学,大家都想知道怎么样才能更快速的学会Java编程,下面小千就给大家几个建议,跟着做一定没错的。 快速学习Java编程的几个建议 1.选择对的书籍或视频教程,报班学习更好 对于Java技术来说,也有很多细分的领域。所以同学们在学习之前最好能够决定自己的发展方向,然后根据方向去学习对应的技术即可。培训班的课程都是根据企业需求设计的,所以都是适合在企业中工作使用的技术,相较于自学的同学来说就不用担心课程方面的问

a158559681的博客 550

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

年龄大了,零基础能学会Java编程吗?

对于这个问题,其实很简单,没有谁一生下来就会Java,你看哪怕是计算机科班出身,其Java技术不也是从0学起。此外,从年龄上来说,一个有正常思维与逻辑的人,无论什么时候学习Java都是可以的。有需要Java资料的请加群523401738                   不过要想成为一名优秀的Java程序员,有些问题你要明确,有些事情一定得做!问题:多长时间可以学会Java?“120天成为Jav...

软件大咖 2999

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java 培训四个月能学会吗?

先说个推测 我大胆猜测一下,以上说的情况,99%是:培训机构以招聘的名义变相招生 看一个网友的经历: 这种坑的普遍套路是: 1、发布大量招聘需求,且招聘的范围很广。 2、无论是本科、专科还是高中文凭,只要投递简历,均会通知参加面试。 3、面试时,会有一些人伪装成部门经理对你的技术进行打压,并指出你的众多不足。 4、洗脑让你参加“岗前培训”,并保证培训完立即上岗,培训花费从工资里扣。 5、签订“岗位培训合同”(实际上是报名协议,往往带有贷款协议!)。 6、在你一脸懵逼的情况下,报上了名,背上了债。 毕业生.

siyuanwai的博客 3244

编程一年,我学会了什么?

​ 生于江西省某十八线城市,高考结束后,被大猛子劝退土木工程后报了CQUPT的CS专业。此前并没有太多机会接触电脑,更别谈编程。暑假期间电脑到货后,从电脑的每个键的作用是什么开始学(知乎上有篇文章从零开始😂),自此开始接触编程。​ 没啥新的可说了,祝大家也能尽早找到自己的节奏,从失败中总,结变强,向目标一步一步靠近 😃​。...

O_C_E_A_N_的博客 2488

真的能一周学会 Python 吗?

这篇文章的标题是:真的能一周学会 Python 吗??这里为什么用 Python 举例呢?因为在很多人看来,Python 比较“简单”。写这篇文章主要是因为我在知乎上看到了一条有趣的动态:该条动态的作者认为一个高考600分以上的人,一天时间能学会 Python,一周时间就能推完 Andrew Ng 的 ML 课程。恰好,我是一个高考600分以上的人,学过 Python,也看过 Andrew Ng 的 Machine Learning 课程。

Trb201012的博客 1089

十年学会编程

作者:Peter NorviG翻译:刘延栋 ,公众号“软件那些事儿”这篇文章已经有很多人翻译过了,我之所以再搞一次,首先是我觉得这文章真的很好,值得一搞再搞,其次,几乎所有的版本都漏掉了一些语句,我猜可能是英文版更新过,但是,中文版没有与时俱进。如果再有人在我的公众号里问我如何学习编程的话,我就可以把这个发给他了。为何每个人都急于求成?随便走进一家书店,都会看到类似《24小时学会Java》这样的书...

码农翻身 1735

3分钟学会JAVA AI编程

3分钟手把手教你学会JAVA AI编程

涓涓细流,汇成波涛汹涌的大海 1554

为什么全网都在劝你学Java、Python,而不是C++?

2020年的最后1个月,C++20的标准正式公布了,它的变化有多大?先来看一张图:分别用C++11和C++20编写代码,来实现同一个数据操作的功能显而易见,C++的代码变得更简洁了,甚至...

weixin_44747933的博客 370

三步学会Java Socket编程

三步学会Java Socket编程

qq_44231628的博客 168

我英语不好,能学会编程吗?

​很多 刚开始学 编程的人都会问 我英文差能学会编程吗?? 学会编程不需要多高深的英语水平,想要学会编程,简单的英语水平足够了。现在的程序开发环境又很友好,基本上打开之后不需要怎么配置,直接写代码就行,程序语言无外乎顺序、判断和循环语句,写一写简单的程序毫无压力,所以需要记住的英文其实并不多。 为什么这么说呢?我们拿Java和Python出来给大家看看。 我们先来看看使用量最多的Java语言。 Java的英文单词、学名关键词或者保留字,也就几十个。 下面是Java的关键词: Java语言,一共有50个关键词

weixin_51578167的博客 144

只用手机,我学会了编程!

手机编程并不是一个伪命题。 以我个人的经验来看,需求量甚大,尤其是在校大学生。 工欲善其事,必先利其器! 今天,舞剑就来划拉划拉只用一部手机,究竟可以编程什么程序。 JAVA AIDE,代码补全,便捷方便强烈推荐 Jvdroid,支持Java 11,支持maven,库全,BUG少,推荐 Java n-ide,适用于简单测试合格Java编译器适用于简单测试合格 Termux,安装过于复杂不推荐 Python Pydroid,代码补全,pip简单快捷 qpydroid, 适用于简单测试 Termux,类库多,安

手机编程 4150
上一篇: IE为什么把火狐和Chrome给打伤了?
下一篇: 对浏览器村的第二次采访
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值