【2023,学点儿新Java-14】携程面试题:如何看待Java是一门半编译半解释型的语言?| 咨询互联网行业 资深前辈的一些问题 | 附:为什么说ChatGPT的核心算法是...?| GPT-3.5

前情回顾:

  • 【2023,学点儿新Java-13】阶段练习之Java面试企业真题(阿里巴巴&拼多多 等) | 常用的Java命令行操作都有哪些 | 如何解决Java的内存泄漏和内存溢出问题?
  • 【2023,学点儿新Java-12】小结:阶段性复习 | Java学习书籍推荐(小白该读哪类Java书籍?有一定基础后,再去读哪类书籍?)
  • 【2023,学点儿新Java-11】基础案例练习:输出个人基础信息、输出心形 | Java中 制表符\t 和 换行符\n 的简单练习
  • 更多Java系列文章,可参阅博主主页哦!

 
其实我们都应该 多去尝试着做自己喜欢的事情,有些事可能在特定的时空下 只有那一次机会,错过了就是永远,没有人“应该”活成什么样子。

 

作者主页: 追光者♂

        

个人简介:
 
[1] 计算机专业硕士研究生
 
[2] 2022年度博客之星人工智能领域TOP4
 
[3] 阿里云社区特邀专家博主
 
[4] CSDN-人工智能领域优质创作者
 
[5] 预期2023年10月份 · 准CSDN博客专家  
 

  • 无限进步,一起追光!!!

        

感谢大家 点赞  收藏⭐   留言!!!

  

本篇从某互联网公司携程的一道Java基础面试题开始,介绍了如何回答Java是一门半编译半解释的语言这一问题,随后附上了近期和某位互联网业内前辈的部分交流记录,相信这应该会对大家有所帮助!此外,结合目前的特点——ChatGPT,分享了关于它的部分知识,这可能会以偏概全,希望大家可以多多理解!

目录

  • 一、如何看待Java是一门半编译半解释性的语言?(携程)
    • 1.1 初学者,会不会这样想?
    • 1.2 解答
  • 二、附:资深程序员(业内前辈) 谈学习方法和路线
    • 2.1 学习方法,是固定的吗?
      • 2.1.1 从认知上来讲,你觉得“好程序员”的标准是什么?
      • 2.1.2 衡量学的好坏的标准是“编码能力”吗?如何提高编码能力?——多敲代码吗?
    • 2.2 可以分享一下您最初学习敲的代码吗?
  • 三、附:为什么说ChatGPT的核心算法 是 RL(强化学习)和 RL(无监督学习)
    • 3.1 “预训练的无监督学习”
    • 3.2 关于 GPT-3.5-turbo

一、如何看待Java是一门半编译半解释性的语言?(携程)

1.1 初学者,会不会这样想?

【2023,学点儿新Java-14】携程面试题:如何看待Java是一门半编译半解释型的语言?| 咨询互联网行业 资深前辈的一些问题 | 附:为什么说ChatGPT的核心算法是...?| GPT-3.5_第1张图片

由上图,你会不会这样想?

由于Java是先编译,后运行,所有它叫 半编译半解释性语言!

注意,上述这种回答 是不严谨的,准确地说,是错误的哈!

事实上,在得到.class字节码文件后,Java有两种执行方式,一种是逐行去“翻译”执行,即解释型;另一种方式是针对热点代码,提前翻译为机器指令,后面在调用时直接去执行机器指令就OK了!(JIT 即时编译器)这样其性能会更好。

1.2 解答

Java一般被称为 半编译半解释型语言,也就是说Java在运行前 需要经过编译过程,将源代码 转换为字节码文件,然后由JVM解释执行字节码。

具体来说,Java的编译过程分两步:首先将Java源代码编译成class文件,也就是字节码文件,然后由JVM执行字节码文件进行运行。

虽然Java的字节码 需要在JVM中解释执行才能运行,但JVM中 内置了即时编译器(Just-In-Time Compiler,JIT),JIT可以将部分常用的字节码编译成本地机器代码,从而提高Java程序的性能。因此,Java既有编译型语言的优点(高效、稳定、安全),也有解释型语言的灵活性和可移植性。

Java采用半编译半解释的方式运行,既保留了编译型语言的优点,也具有解释型语言的灵活性和可移植性,这也是它成为了一门流行语言的原因之一。

【2023,学点儿新Java-14】携程面试题:如何看待Java是一门半编译半解释型的语言?| 咨询互联网行业 资深前辈的一些问题 | 附:为什么说ChatGPT的核心算法是...?| GPT-3.5_第2张图片

 

二、附:资深程序员(业内前辈) 谈学习方法和路线

最近向一个资深前辈提问了一些问题。觉得可能会对大家一些帮助,于是记录一下!

2.1 学习方法,是固定的吗?

2.1.1 从认知上来讲,你觉得“好程序员”的标准是什么?

 

  • 是不是敲过多少行代码?

  • 是不是调过多少Bug?

这就意为着好程序员吗?

这是个很好的问题。从我的经验来看,“好程序员”的标准远不止于敲多少行代码和调多少Bug,这些只是衡量他们工作量和技术能力的指标。以下是我认为“好程序员”的标准:

  1. 编写高质量的代码:好程序员编写的代码 不仅要实现功能还需易于维护、健壮、高效、可扩展、可重用、易于测试等,符合软件工程规范

  2. 良好的学习和沟通能力好程序员 始终保持学习的状态,保持对新技术的掌握,能够与团队成员和用户有效沟通交流,从中获取所需支持和反馈。

  3. 团队合作和领导能力:好程序员 能够有效工作于团队环境中,并协调 完成团队项目。如果加入项目管理方面的工作,好程序员 能够领导和支持团队成员,协调团队合作,制定管理方案等。

  4. 潜力和责任心:好程序员 不仅会应对眼前的任务,也会对项目的 长远规划和未来发展进行战略思考,积极承担责任,带领其他成员的成长。

  5. “好程序员”是指有远见、责任心强、懂得团队合作、善于学习和沟通,能够写出高质量代码并不断提高质量的人,这样的人才能在IT行业中获得成功。

【2023,学点儿新Java-14】携程面试题:如何看待Java是一门半编译半解释型的语言?| 咨询互联网行业 资深前辈的一些问题 | 附:为什么说ChatGPT的核心算法是...?| GPT-3.5_第3张图片

 

2.1.2 衡量学的好坏的标准是“编码能力”吗?如何提高编码能力?——多敲代码吗?

编码能力只是学习好与坏的表现之一,它并不能完全代表程序员的素质和能力。

提高编码能力是提高学习的一部分,但是学习编码的过程 是需要多方面的支持和帮助。除了多敲代码之外,还应该:

  1. 勤于思考:编程 不是简单地输入代码,而是需要思考、分析、优化,需要 时常自我反思,发现自己的问题与不足之处,并思考如何改进。

  2. 学习和掌握算法和数据结构算法和数据结构 是编码能力的基础,因此学习和掌握 算法和数据结构非常重要。

  3. 关注技术发展和新技术:互联网时代发展迅速,技术更新换代也很快。优秀的程序员 需要关注技术的发展,掌握新技术,并尝试 将其应用到实际生产环境中

  4. 阅读源代码:通过学习他人优秀的编码风格和代码实现方法,提高自己的编码能力。同时,代码审视 是发现代码中缺陷的好方法。

  5. 多敲代码 只是提高编码能力的一部分,还需要有系统地学习、思考、应用,并不断总结和完善 代码实现方法

 

2.2 可以分享一下您最初学习敲的代码吗?

哈哈!事实上,没有谁(大家其实都是)从HelloWorld进入的这个“新世界”!

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

这个程序的功能非常简单,它只是输出“Hello World!”这个字符串。但是这个小程序却包含了许多Java编程中的常用知识点,例如:

  1. 类定义:用public class声明一个类,并定义类名HelloWorld。
  2. 方法定义:用public static void main声明一个方法,方法名为main,参数为字符串数组String[] args。
  3. 输出语句:使用System.out.println()方法输出字符串到控制台。

尽管此程序功能很简单,但可以视作Java开发者 基本的语法能力。对于中级Java程序员来说,代码长度 不一定决定其水平高低,最重要的是 代码的功能合理、内部逻辑清晰、可读性强,并且可以应对复杂业务场景

 

(⊙o⊙)…!不愧是前辈!与前辈还聊了一些内容,我将会在后续的文章中间断分享,希望能够对大家有些帮助!

 

三、附:为什么说ChatGPT的核心算法 是 RL(强化学习)和 RL(无监督学习)

3.1 “预训练的无监督学习”

我觉得 这个问题不能很容易地答的特别好。

ChatGPT是使用了一个基于预训练的无监督学习方法,也就是大家常说的"无监督预训练"。

这种方法 通常依靠大规模数据的自监督学习来训练模型,在无需大量标记的情况下也能达到不错的效果,而且 可以利用多种自然语言处理任务来协同训练,从而提高模型的性能。

与强化学习不同,无监督学习是一种自动学习范式,不需要外部标签 进行监督,而是从大量的无标签数据中 自学习模型。ChatGPT算法 使用了大量的自然语言数据进行训练,从而能够 理解自然语言规则和语法结构,并能够生成类似自然语言般的文本。

ChatGPT实际上 可以理解为一种语言模型,因为它能够在不进行特定任务训练的情况下 对自由文本的生成和解释做出响应。

ChatGPT的核心算法是基于预训练的无监督学习,利用语言模型 和大数据集自我训练、自我监督,从而实现对自然语言的理解和生成。

 

3.2 关于 GPT-3.5-turbo

可以说,ChatGPT 是基于GPT-3.5-turbo算法的智能AI,GPT 指的是Generative Pre-trained Transformer的缩写,是OpenAI开发的自然语言处理模型。

GPT算法是一种基于Transformer架构的预训练语言模型,它通过 大规模训练文本数据 来生成下游任务所需的特定任务模型。GPT算法具有非常强的语言生成能力和上下文感知能力,可以进行文本分类、语言翻译、文本生成等任务。

至于GPT-3.5-turbo,则是在原有GPT-3基础上进一步优化和改进,具有更快的训练速度和更高的精度。

通过训练大规模的语料库,GPT-3.5-turbo算法 具有先进的自然语言理解和生成能力,可以应用于 各种自然语言处理任务和人工智能应用。而ChatGPT是构建在 这个基础上的文本智能AI,专门用于智能对话 和 自然语言生成任务。

 


 

热门专栏推荐

  • Python&AI专栏:【Python从入门到人工智能】
  • 前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】
  • 文献精读&项目专栏:【小小的项目 (实战+案例)】
  • C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)
  • Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)
  • 问题解决专栏:【工具、技巧、解决办法】
  • 加入Community 一起追光:追光者♂社区

 

持续创作优质好文ing…✍✍✍

 

记得一键三连哦!!!

 

求关注!求点赞!求个收藏啦!

在这里插入图片描述

你可能感兴趣的:(备战2023博客之⭐_Java,2023Java面试题,Java教程,JVM,携程面试题,互联网大厂Java面试题,即时编译器JIT,ChatGPT)