面试准备+复习分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
对此,有不少小伙伴会有疑问,为什么JAVA就会如此受欢迎呢?
为什么阿里巴巴超级喜欢JAVA开发?🌱
作为互联网龙头企业之一的阿里巴巴,一向都是众多互联网公司的风向标,因此回答这个问题是非常具有代表性的。
接下来优优就为你一一给你道来,JAVA究竟是有何魅力,让阿里巴巴如此热衷~
阿里巴巴的历史原因
2003年,门户网站还处在鼎盛时期,网页三剑客是程序员争相学习的技术之一,也就是PHP、ASP(.NET)和JSP是互联网常用的网站开发语言,是大部分门户网站的首选
而淘宝也就是在2003年创立的,当时为了快速上线,就选择了PHP,最初的几个月跑下来还是很好的满足了需求,但随着用户量和交易量的飞速增加,各种各样的性能问题就爆发了出来,PHP已经无法支持阿里的业务了,并发量不够,因此不得不考虑换一种更加高效和稳定的架构。
这时候Java就进入了候选列表,在Sun公司专家的主导下开始转向Java,一直延续到现在。
阿里巴巴发展的必然选择
经过10几年的发展,阿里已经有拥有数以万计的Java开发人员,在Java技术栈有着非常深厚的积累。
目前看阿里的核心架构是Java语言开发,而且所有的技术生态都是围绕Java进行的。从需求管理、代码托管、集成发布、运行容器、数据存储、监控预警、日志分析等全流程工具大部分都是基于Java自主研发。
阿里这个商业操作系统全身上下都流淌着Java的血液,因此喜欢Java也是必然的结果。
令人难以抗拒的优点🌻
Java的优点可以用几个词来概括:优美,严谨,健壮,不易出错等等。Java有8大特性,也就是它的8大优点:
No.1 跨平台/可移植性
跨平台是Java语言的核心优势,在设计之初Java就很注重可移植性和跨平台性,因为Java的运行是通过JVM来实现的,所以系统本身是什么无关紧要,只要安装对应的虚拟机即可,省去了大量的代码重复编写时间。
并且Java称霸时间较早,在整个行业建立了强大的生态体系,目前已经成为了覆盖IT行业的“第一大语言”,是计算机界的“英语”。虽然后来也有其他的跨平台语言出现,但是无法和Java强大的生态体系抗衡。
No.2 安全性
Java的安全模型基于一个可定制的“沙盒”,Java 软件程序可在其中安全运行,对系统或用户无潜在风险。
No.3 面向对象
Java是完全的面向对象语言,非常适合大型软件的设计和开发。
No.4 简单性
Java去掉了头文件,指针,结构,联合等内容,比起其他语言,更加简单易学。
No.5 高性能
Java在初期总是被人吐槽“性能低”,但是在Java语言发展过程中通过对虚拟机的优化,提升了很多的效率,现代Java低性能的问题已经完全被解决了。
No.6 分布式
Java是为分布式环境设计的,它可以处理TCP/IP协议。其还支持远程调用方法,使程序能够通过网络调用。
No.7 多线程
Java多线程的简单易用性使Java成为了最主流的服务器端开发语言,多线程的使用可以使资源利用率更高,程序设计在某些情况下更简单,程序响应更快。
No.8 健壮性
Java吸收了C/C++的优点,但是丢弃了指针等容易使程序崩溃的内容,提升了语言的健壮性。
Java的语法结构🌿
package Oniline;
public class HelloWorld{
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
注:
Java 中的main方法 必须包含 public static, main
System.out.println 相当于 C语言中的 printf
面试题1:
1.这个main方法,为什么是static的?
2.String[] args 的作用是什么?
注意:Java 的文件名不能是 数字 或 中文
什么是idea,IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具。
JAVA 程序的运行过程🌾
面试题2:
JDK JRE JVM 三者有什么关系和区别?
JDK: Java 开发工具
JRE: Java 运行环境
JVM: Java 虚拟机
关系图:
先将磁盘上的.Java文件利用 javac 编译成二进制的.class 文件,然后再通过 java + 文件名 进行内容的打印
java.class 跑完以后 程序都来到了 JVM(java virture machine—>JAVA 虚拟机) 它可以把 .class文件 中的字节码 加载到 JVM 中 运行
编译过程中的 javac 和 最后打印用的 java 都属于JDK命令
javac 不仅仅是 「java 的编译器」 也是「Java 的命令」~~
控制台运行结果:
编译之后生成的是 .class文件
面试题3:
从.class文件 加载成 JVM 中的
双亲委派模型
类加载器
class A{
}
public class HelloWorld{
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
一个Java 文件里面可以有 多个 class~
但是 一个 Java 文件里面 有且仅有 一个 public!
最后
小编精心为大家准备了一手资料
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
BATJ面试要点及Java架构师进阶资料
要点及Java架构师进阶资料**
[外链图片转存中…(img-1uP7wDJw-1715377651911)]