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

超硬核的Java工程师分享,什么是Java?为什么我要做Java,我是如何学习Java的?

为什么我要选择Java 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++、前端之类的方向呢,另外还有一些声音:研究生不是应该去做算法方向么,本科生不就可以做开发了吗,为什么还要读研呢...其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的。我可能还是主要以我的角度出发,结合一些读者的问题,来说一说为什么要选择Java这条路。...我是如何学Java的? 教练,我想学Java! 怎么学Java,一个简单的命题,我自己也折腾了好几年,现在虽不能说是Java高手,但也算是小有所成,至少还不至于搞不懂一些基本概念和技术原理。...从我大三那一年第一次在课堂上听老师讲JAVA课程到现在,也已经快4年的时间了,回顾我的学习历程,可以说是充满艰辛的,但又是不断在进步的,所谓道路是曲折的,前途是光明的,大抵就是这个意思吧。...可能绝大部分人的大学Java课程都是这么学的,只能当成新手入门,算是为小白打开了新世界的大门。

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

    我是Java,这是我的2019年总结,请查收!

    我是你们热爱的Java,2019年过去了,按照惯例,我要做一下年终总结,说说这一年来发生在我身上的大事。 首先我高兴地向大家宣布,我继续在语言排行榜霸占第一的位置 !...与此形成鲜明对比的是,蓝色巨人IBM似乎和Java渐行渐远,这个企业级Java的最大玩家,Eclipse IDE的发明者,几乎所有产品线都基于Java技术的公司,要向云和AI做转型了。...第五,Java EE正式宣告死亡,注意我说的是仅仅是名字,因为被Oracle抛弃以后,Java EE投入到Eclipse的怀抱,摇身一变,成为了Jakarta EE。 ?...可是让人遗憾的是:“邪恶”的Oracle后爹居然不让Jakarta EE使用javax这样的包名!因为Java是他们的注册商标。但是,为了保持我们Java一直以来的好名声:向后兼容性。...我对这个掌管着Java特性开发的组织是又爱又恨,一方面,所有的Java特性必须通过JSR的方式提交到JCP,讨论,投票以后才能成为真正的规范。

    39230

    关于java中的反射,我只能努力到这了

    反射是java高级特性之一,常用的框架,例如:spring、mybatis等在实现的过程中都使用到了反射,所以还是非常有必要了解反射的。...所以如果你想实现一个通用的功能,反射或许是最好的选择之一。 反射的缺点 反射的好处是允许我们在运行时对类、接口等进行一系列操作。...安全问题: 使用反射我们可以访问我们不应该访问的部分代码,例如我们可以访问一个类的私有字段并更改它的值。这可能是一个严重的安全威胁,并导致应用程序行为异常。...是所有反射操作的入口点。...不同的是,getField()获取的必须是声明了public的字段,包括父类或者实现的接口中的public字段; getDeclaredField() 只能获取的本类中定义的字段。

    57720

    看了很多负采样的论文,最后我选择不采样了。

    Transfer-based Multi-behavior Prediction 不同的行为之间是存在转化关系的,两个行为之间的关系可以通过下面的方式来定义: 其中,是一个迁移矩阵,它将从地个行为空间迁移到来第个行为空间...是一个bias向量,所以第个行为的预测层可以通过下面的形式计算: 其中表示第个行为之前的行为,初始的行为是随机初始化的(在推荐里面就是view) 2....基于内积乘法操作的decouple的操作, 我们将上式代入得到: 因为是均匀的; 参数是商品相关的; 和可以被很好地分开,的优化以及是相互独立的,我们可以通过预先计算这两项来加速。...讨论 在第个行为的batch更新的时间复杂度为:, 其中表示该batch中用户和商品在的行为下的正向交互次数。在MTL更新类行为时,我一个batch需要耗费。...不同的数据集对应的参数是不一样的。 小结 本文提出了一种新的端到端推荐模型EHCF。

    2.1K10

    为什么我的虚拟机开机即卡死?以及我是怎么修补的

    ---- 找出内存不足之后,处理方式基本和网上差不多了: 1、在开机的时候进入grub界面,在进度条的时候按esc,要确定输入导入了虚拟机。 2、选择第二个选项,Ubuntu高级选项。...我去看了,原创作者是那样解决了,底下一堆评论问为什么他们那样做不能解决。那不是废话吗,环境都不一样。至于网上其他抄袭的底下根本没评论。跟着做大概率是不行的。...我来解释一下这第三步操作是什么:是清理内存碎片(就像手机内存不足的时候清理一下垃圾)。这我在外面就可以做的事情,做了无效的。 那个博主我挺佩服他的,虚拟机上能有那么多的垃圾?...---- 4、采用 mount 可以查看挂载情况,直接查看最后一行,是就是,不是就不是。...5、临时挂载命令:mount 分区路径 预挂载路径 6、如果挂载错了,想取消挂载:umount 分区路径 或 挂载路径,我为什么写俩,自己机灵点。 ---- 至此,问题解决。

    2.7K20

    如此多的深度学习框架,为什么我选择PyTorch?

    随着1.0版本的公布,Java、Go、R和Haskell API的alpha版本也被支持。此外,TensorFlow还可在Google Cloud和AWS中运行。...由于MXNet最初由一群学生开发,缺乏商业应用,极大地限制了MXNet的使用。2016年11月,MXNet被AWS正式选择为其云计算的官方深度学习平台。...比如百度开源的PaddlePaddle,CMU开发的DyNet,简洁无依赖符合C++11标准的tiny-dnn,使用Java开发并且文档极其优秀的Deeplearning4J,还有英特尔开源的Nervana...为什么选择PyTorch 这么多深度学习框架,为什么选择PyTorch呢? 因为PyTorch是当前难得的简洁优雅且高效快速的框架。在笔者眼里,PyTorch达到目前深度学习框架的最高水平。...当前开源的框架中,没有哪一个框架能够在灵活性、易用性、速度这三个方面有两个能同时超过PyTorch。下面是许多研究人员选择PyTorch的原因。

    1.7K20

    初识爬虫的那天,我选择了Java ( ー̀◡ー́ )

    本科时,毕业论文需要不少网络上用户的问答数据。那时,我还没有搞过网络爬虫,只能利用关键词搜索的方式,找到相关数据,然后一条一条复制。...为了“活”下去,我决定放手一搏,但在学习准备阶段我就遇到了我的第一个“爬虫难题”。 ? ? 决定要用网络爬虫去采集数据,面临一个选择就是:是用Java还是Python写网络爬虫呢?...对于一个新手,我翻阅了网上各种对比的帖子,各有各的观点,其中不少说Python上手容易,写起来方便。但最终我还是选择了Java,有以下几点原因: 1....但成功是总是属于那1%的人,这类人是坚持让大脑做不愿意做的事的人——求知”。哎,这在我看来,还真有一定的道理。如果励志想成为一名真正的程序员,建议先学习Java。...例如,Java中基本的数据类型、Java中的数组操作、判断语句的使用、集合操作、对象和类的使用、String类的使用、日期和时间的处理、正则表达式的使用、Maven工程的创建、多线程操作、日志的使用等。

    61010

    基于Vue的拖拽插件的实战应用,但最后我还是选择了手写

    大家好,我是前端实验室的大师兄 因为项目上有一个在规定区域内自由拖拽的小需求,自己纯js写又有点小麻烦,就花了点时间寻找到这个小组件。...介绍 vue-drag-resize是一个用于拖拽,缩放的组件 根据网上搜索到的使用教程,都是照着文档翻译了一遍,根本解决不了我想要的问题 花了几天时间,于是记录下了这个组件的一些使用教程 简单使用...h是高 x表示相对于父元素在x轴上的初始偏移量 y是在y轴上的初始位置 引入好组件后,此时拖拽元素既可以拖拽,也可以缩放,可以使用isDraggable来控制是否允许拖拽,默认是true //禁止拖拽...1px solid red; position: relative; margin: 0 auto; } .drag{ border: 2px solid red; } 为什么要选择手写...为了适配不同的电子白板,以往我们都是规定以rem为单位,但是,插件传入的数据都是以px为单位的,根本无法适配不同的屏幕 所以,这个时候手写一个拖动元素,才是最为安全的 我已将手动拖拽的主要源码上传到github

    1.8K60

    我是如何击败Java自带排序算法的

    Java 8 对自带的排序算法进行了很好的优化。对于整形和其他的基本类型, Arrays.sort() 综合利用了双枢轴快速排序、归并排序和启发式插入排序。这个算法是很强大的,可以在很多情况下通用。...我没有尝试任何字节或汇编级别的分析和优化。在大部分的问题中,我的版本的优化程序都远远不能跟Java系统程序相提并论。 我一直都想测试脑海里的一个简单的排序算法,我称之为Bleedsort。...尽管我写的快速排序算法在一定程度上比不过Java自带的算法,但是我的预处理过程很好的弥补了这些不足(调用了我的快速排序的Bleedsort 87ms vs Java 自带算法105ms; 938ms vs...在这些数组中,平均下来,出现50这个数字的次数是795.5,而出现40组重复数组的次数是108.4。...最后,让大家来认识一下二项分布的一些数据集 bin(100, 0.5) 和 bin(1000, 0.5), 这里是两个随机抽样了100个数据的数据集(使用R语言生成)。 ?

    86110

    为什么我觉得这次的chatGPT是真的智能AI

    或者什么才算的上智能,这个问题说实话不是我回答不出来,讨论了那么多年的地球人也没有对智能做出了一个完美的定义,原因很简单,随着技术的发展,不同时期对机器的可操作性认识是不同的,举个极端的例子,回到钻木取火的时代...很明显也只能叫做智能设备,他所谓的生态也只是使用的不同的设备完成特定的工作,灯控、门控等,他帮助人类解决某一块领域的事情,解放人类的劳动力我们可以称之为智能设备。...为什么我会把它和语音助手相提并论,多少有点侮辱gpt了,但是我身边的人不搞技术的人还是比较多的,他们认知里面GPT就是一个相对比较聪明的语音助手,当我试图和他们解释的时候我发现我竟然说不出来什么理由,他确实就是一个比较聪明的语音助手...-成熟期,我们可以回顾一下所有经历过的技术,几乎都是沿着这个曲线进行发展的,最后到达成熟期之后为人所用,给人类的生活带来便利甚至改变人类的生活方式 , 为什么chatGPT才算是未来最具有意义的人工智能...写到最后 技术被发明出来是一个很漫长的过程,但是发展不是,互联网从开始到现在也没多少年,但是被发现却用了几百年,所以GPT的出现,后面提示工程师的出现无疑向我们传达了一个信息,我们目前所谓的技术工种会逐步被

    76820

    我想教你实现Java进程同步,因为我是浪漫的程序员!

    1 问题描述 1.1 为什么要有进程同步 在我们使用的操作系统中为什么要有进程同步机制?...我们的计算机系统刚开始是单道批处理系统,意思就是同一时间段内只能运行一个程序,这个程序运行完,才能运行另一个程序,这样就会导致运行效率太低,系统中的资源得不到充分的利用。...,用来记录资源的个数,第二个是指针,指向下一个要使用临界资源的进程。...进程P1中:S1;signal(S); 进程P2中:wait(S);S2; 上面语句的意思是,先执行P1的语句,然后释放S,也就是S++,这样当P2执行完wait函数之后才可以执行,否则,不执行signal...由于包子余量(资源数量)需要所有进程共享,因此任意时刻只能有一个进程访问缓冲器,这需要使用Java中的synchronized同步代码块实现,synchronized关键字的作用就是控制多个线程访问资源同步性的问题

    63230

    『设计模式』反射,反射程序员的快乐!为什么我老是加班?为什么我工资不如他多?原来是我不懂反射!

    Java是一门准动态语言,是因为存在反射机制,如果你不会是不是就等于白学了? 看完不会,请评论,我亲自给你解释,嘻嘻! ? 什么是动态语言?...什么是反射: 定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java...总结 这时候又会有小朋友问: 为什么要这么麻烦,我直接调用不就好了?...写在最后: 我叫风骨散人,名字的意思是我多想可以不低头的自由生活,可现实却不是这样。...你的点赞、收藏、关注是对我最大的鼓励!

    1.1K20

    马斯克:虽然我是Rust的粉丝,但我选择C

    游戏公司后台开发、通信公司后台开发、服务端底层应用优化、后台系统驱动和内核……在程序员眼里,这个48岁的C语言几乎是无所不能的。...因为优秀的程序员并不是精通某一种编程语言,而是能精确把握编程思想。 这恰好是学C语言的一大好处——可以深入了解计算机底层运行机制。...现在常见的高级语言的底层几乎都是C语言实现的,所以,无论是学什么高级原理,要想掌握其内部原理,借助C语言就可以轻松了解。 越是底层的东西就越高级!...这个时候千万不能不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解。 (会员1V1答疑) 学习编程语言就是一个坚持看、敲、写的过程。...不懂就问 学习的过程中需要一个引路人,很多问题作为初学者是无法解决的,很浪费时间,例如有很多初学者配置JDK就能用上一天的时间,所以我们完全没有必要在这方面问题浪费时间。

    73040

    为什么 Go 是我最喜欢的编程语言(2017)翻译

    为什么 Go 语言是我最喜欢的编程语言 2017-08-19 发表,上次修改 2020-11-21 我努力尊重每个人的个人喜好,所以我通常会避开关于哪种是最好的编程语言、文本编辑器或操作系统的辩论。...我欣赏快速加载的网站,我更喜欢流畅的用户界面,不延迟,我随时都会选择一个快速的工具而不是一个更强大的工具。大型网站的调查结果发现,大多数人都有这种想法。...在 Go 中,我们认为它们是理所当然的。 入门 希望我能够表达我为什么喜欢用 Go 工作。 如果你有兴趣开始使用 Go,请查看人们加入Gophers slack 频道时指出的初学者资源。...注意事项 当然,没有哪个编程工具是完全没有问题的。鉴于这篇文章解释了为什么 Go 是我最喜欢的编程语言,它的重点是积极的一面。不过,我还是要顺便提一下几个问题。...如果你使用的 Go 包没有提供稳定的API,你可能想使用一个特定的、已知的工作版本。你最好的选择是 dep 工具,在写这篇文章时它还不是语言的一部分。

    98130

    我是如何理解Java抽象类和接口的?

    不卖关子,我个人对这两个的理解: 类是具体实例的抽象,比如一个json字符串的抽象;而抽象类就是类的抽象;接口就是抽象类的抽象,接口更像是一种协议 听我慢慢道来~ 吐槽 首先,我必须吐槽一下这种面试,我认为面试官凡事问出这种类似...这两种实现方式,我觉得从功能上讲是一样的,但是从类设计上讲是不同的。...下面代码中的实现,我是参考了java.util.AbstractList中add(int location, E object)方法的设计,它的文档中写到: * @throws UnsupportedOperationException...()可以理解为: 默认情况下“汽车”是不能开的,你实现了一个汽车类后,需要Override这个方法,实现自己的drive方法 以java容器中的List举例 ?...这就像上面说的,所有的交通工具都是可以驾驶的一样,所有的列表都是可以遍历的。 一层一层往下,类就变得更加具体。 最后 为什么接口可以继承? 其实这个原理很简单。

    801100

    19 | 为什么我只查一行的语句,也执行这么慢?

    出现这个状态表示的是,现在有一个线程正在表 t 上请求或者持有 MDL 写锁,把 select 语句堵住了。 场景: ? 2....等 flush flush tables t with read lock; flush tables with read lock; 这两个 flush 语句,如果指定表 t 的话,代表的是只关闭表...在 session A 中,我故意每行都调用一次 sleep(1),这样这个语句默认要执行 10 万秒,在这期间表 t 一直是被 session A“打开”着。...第二类:查询慢 select * from t where c=50000 limit 1; c是varchar类型的,全盘扫描了,没啥好说的。或者c是没有索引的。 情景: ?...带 lock in share mode 的 SQL 语句,是当前读,因此会直接读到 1000001 这个结果,所以速度很快;而 select * from t where id=1 这个语句,是一致性读

    1K20

    还记得当初为什么选择计算机?我的代码人生旅程‍

    还记得当初为什么选择计算机?我的代码人生旅程‍ 摘要 在这篇博客中,我将探讨计算机科学的魅力、编程的乐趣和技术对个人成长的影响。...引言 大家好,我是猫头虎博主‍,今天和大家分享我的计算机之旅。自从我选择了计算机,我的生活就像是打开了一扇通往未知世界的大门。让我们一起探索这个充满可能的领域吧! 1. 我为什么选择计算机行业?...1.1 初识编程的那份魔力 ✨ 最初接触计算机是在高中的时候,那时候的我被编程的魔力深深吸引。我记得第一次写出Hello, World!时的兴奋,就像是一个小巫师学会了第一个魔法咒语。...1.2 梦想与现实的碰撞 选择计算机专业,我梦想着成为一名创造奇迹的程序员。然而,现实总是充满挑战。从学习复杂的算法到调试似乎永远也解决不了的bug,每一步都充满了挑战。 2....2.2 从学习者到分享者 我开始撰写技术博客,分享我在这个领域的所学所感。我希望我的经验能够帮助到正如当年的我一样的编程初学者。 3. 计算机对我的人生道路有何帮助?

    10510

    我以为,前端的精髓是学会分析与思考,而不是js语句

    今天我在跟同学们讲课,讲到做轮播图的时候,脑子里突然蹦出一句话,“学js学前端,是学习用程序、用机器的思维方式来解决现实当中的问题,而不是学这几十上百条的js语句”。...我口语化的描述一下,这个职位它实际上是把人们在现实生活当中的需求,放到网上来给它实现了,是做线下需求网络化的。这是我的个人主观的想法。 以前是线下买东西,线下排队看病挂号,线下排队买票看电影,。。。...这是我眼中,我心中的前端开发。 前端开发为什么叫前端?就是因为它用肉眼能看到。后端开发为啥叫后端?因为它肉眼看不到。所以前端开发也可以放在可视化开发的大范畴里。...怎么去设计好它,这是前端的真正的价值之所在。 至于js语句嘛,无非是一些if else for function... 之类的,临时有哪个不会用或是想不起来,查查资料也就行了。...可能有同学不认同我的看法。这没关系,事实会证明我是正确的,“只会js语句,没有逻辑思维,不懂分析与设计的前端新人,根本找不到工作。” over.

    1.1K70
    领券