2024年最新Java期末复习速成(一),成功入职阿里月薪45K

总结

对于面试,一定要有良好的心态,这位小伙伴面试美团的时候没有被前面阿里的面试影响到,发挥也很正常,也就能顺利拿下美团的offer。
小编还整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家,

在这里插入图片描述

在这里插入图片描述

最后感谢大家的支持,希望小编整理的资料能够帮助到大家!也祝愿大家都能够升职加薪!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

void student_eating({...}

void student_gotoSchool({...}

}




而面向对象可以把学生进行抽象,所以这个例子就会变为



class student(){

void wakeUp(){...}

void cloth(){...}

void wash(){...}

void eating({...}

void gotoschool(){...}

}




*   可以不用严格按照顺序来执行每个动作。这是特点一。

*   Java摒弃了C++中难以理解的多继承、指针、内存管理等概念﹔不用手动管理对象的生命周期,这是特征二。

*   Java 语言具有功能强大和简单易用两个特征,现在企业级开发,快速敏捷开发,尤其是各种框架的出现,使Java成为越来越火的一门语言。这是特点三。  

    Java是一门静态语言,静态语言指的就是在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改,比如下面这个例子。



public void foo(){

int x = 5;

boolean b = x ;

}




静态语言主要有Pascal,Perl,C/C++,JAVA,C#, Scala等。  

相对应的,动态语言没有任何特定的情况需要指定变量的类型,在运行时确定的数据类型。比如有Lisp,Perl,Python、Ruby、JavaScript等。  

从设计的角度上来说,所有的语言都是设计用来把人类可读的代码转换为机器指令。动态语言是为了能够让程序员提高编码效率,因此你可以使用更少的代码来实现功能。静态语言设计是用来让硬件执行的更高效,因此需要程序员编写准确无误的代码,以此来让你的代码尽快的执行。从这个角度来说,静态语言的执行效率要比动态语言高,速度更快。这是特点四。



**Java具有平台独立性和可移植性**  

Java有一句非常著名的口号: _Write once,run anywhere_ ,也就是一次编写、到处运行。为什么Java 能够吹出这种牛批的口号来?核心就是JVM。我们知道,计算机应用程序和硬件之间会屏蔽很多细节,它们之间依靠操作系统完成调度和协调,大致的体系结构如下:



![在这里插入图片描述](https://img-blog.csdnimg.cn/8c0e5e7fdf9f4bdba186366637abc709.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSx5pWj5aSa5bm055qE5ZOl5ZOl,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center#pic_center)  

那么加上Java应用、JVM的体系结构会变为如下  

![在这里插入图片描述](https://img-blog.csdnimg.cn/004ce1cda3e94a21b533404a204874e7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSx5pWj5aSa5bm055qE5ZOl5ZOl,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center#pic_center)  

Java是跨平台的,已编译的Java程序可以在任何带有JVM的平台上运行。你可以在Windows 平台下编写代码,然后拿到Linux平台下运行,该如何实现呢?  

首先你需要在应用中编写Java 代码;  

用 **Eclipse** 或者 **javac** 把Java代码编译为.class文件;  

然后把你的.class文件打成.jar文件;  

然后你的.jar文件就能够在Windows 、Mac OS X、Linux系统下运行了。不同的操作系统有不同的JVM实现,切换平台时,不需要再次编译你的Java 代码了。这是特点五。



**Java能够容易实现多线程**  

Java是一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如Java是如何实现多线程的。从操作系统的角度来说,实现多线程的方式主要有下面这几种:



*   在用户空间中实现多线程

*   在内核空间中实现多线程

*   在用户和内核空间中混合实现线程



而我认为Java应该是在用户空间实现的多线程,内核是感知不到 Java存在多线程机制的。这是特点六。



**Java具有高性能**  

我们编写的代码,经过**javac** 编译器编译称为**字节码(bytecode)**,经过JVM内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分JVM的实现比如**Hotspot JVM**都提供了\*\*JIT(Just-In-Time)\*\*编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译机器码,这种方式运行效率比较高,这是编译执行。所以Java不仅仅只是一种解释执行的语言。这是特点七。



**Java语言具有健壮性**  

Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。这也是Java与C语言的重要区别。这是特点八。



**Java 很容易开发分布式项目**  

Java语言支持 Internet应用的开发,Java中有 net api,它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的 \*\*RMI(远程方法激活)\*\*机制也是开发分布式应用的重要手段。这是特点九。



  



[]( )Java开发环境

-------------------------------------------------------------------------



### []( )JDK



JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java RuntimeEnvironment),一些Java工具和Java 的核心类库(Java API)。  

![在这里插入图片描述](https://img-blog.csdnimg.cn/e37851df03f04ec1a42ed2ddbb797dc8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSx5pWj5aSa5bm055qE5ZOl5ZOl,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)



我们可以认真研究一下这张图,它几乎包括了Java中所有的概念,我使用的是 **jdk1.8**,可以点进去_Description of Java Conceptual Diagram_ ,可以发现这里面包括了所有关于Java 的描述。  

Oracle 提供了两种 Java平台的实现,一种是我们上面说的JDK,Java开发标准工具包,一种是JRE,叫做Java Runtime Environment,Java运行时环境。JDK的功能要比JRE全很多。  

  



### []( )JRE



JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。



  



[]( )Java开发环境配置



### 最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

![image](https://img-blog.csdnimg.cn/img_convert/212c8ead3a4c28630140f40db0644627.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/1fa55f3be221192ba07d2aabd26bbd54.webp?x-oss-process=image/format,png)



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

G开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值