Java基础题(1)

Java 基础面试300题 (1-50) 当一个类中有两个或多个具有相同名称但参数个数或者类型不同的方法时,就会发生方法重载。return a+b;return a+b;return a+a;当子类中存在与超类方法具有相同名称和参数数量的方法时,就会发生方法重写。如果一个类在任何给定时间只允许创建一个实例, 该类被称为Singleton类,其实例也称为单例。Singleton类可以通过私有构造函数和方法实现。////使用单例在上面代码片段中,我们定义了一个私有构造函数和一个公共的静态方法。该方法检查是否存在实例。 阅读详情

1. 继承和实现的区别

       继承:如果有多个类的某个部分的功能相同,那么就可以抽象出来一个类,把他们相同的部分都放在一个类里,让他们都继承这个类。

       实现:多个类处理目标是一样的,但是处理的方式不一样,就是可以定义一个接口,即是一个标准,让他们实现这个接口,各自实现自己具体的处理方法来处理目标

    两者的联系:继承和接口都能实现代码的重用,提高开发效率

    两者的区别:(1)修饰不同:实现使用的是implement,继承使用的是extends

                          (2) 数量不同:java中的接口支持多继承,但是类不支持(继承具有单一性),一个类只能继承一个类,但是可                                                           以实现多个接口。

                         (3)调用不同:某个类实现接口之后,一定要实现接口中的抽象方法, 继承想调用哪个方法就调用哪个方法

                          (4)属性不同:在接口中只能定义全局常量,和无实现的方法 ; 继承中可以定义属性,常量,变量等等

 

2. list 和 map 区别

 list:是存储单列数据的集合,存储的数据时有序并且可以重复的

  map:存储双列数据的集合,以key-value的形式,存储的数据时无序的,key值不能重复,value可以重复

 

3.  map 和hashMap的区别

        map是接口,一次存储两个对象,一个键对象,一个值对象

         hashmap的map接口的实现类,使用了哈希算法对键去重复,效率高,但无序

 

4.  谈谈你对spring的理解

        Spring是一个轻量级的Ioc和Aop容器框架

        控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

        面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

       容器:Spring 包含并管理应用中对象的生命周期和配置。

       MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

      事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。

      异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的                                         unchecked 异常。    
 

5.  Java加载机制

      javac(编译)-------------》java(类加载和执行)

      JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的Java类型的过程

      加载--》链接---》初始化

       1.加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法去中的运行时数据结构,在队中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。

       2.链接:将JAVA类的二进制代码合并到JVM的运行状态之中的过程

                 验证:文件格式验证、元数据验证、字节码验证(确保字节码可以安全的被java虚拟机执行)、符号引用验证

                 准备:这一阶段就是正式为类变量分配内存初始值的阶段,都是在方法区分配。此处的初始值不是程序的字面量,而是系统给定的初始值(如int分配4个字节并赋值为0,long分配8字节并赋值为0;)

                解析:该阶段是将常量池中的符号引用转化为直接引用的阶段,主要针对类或者接口、字段、类方法、接口方法四类的符号引用解析(比如 A类中的a方法引用了B类中的b方法,那么它会找到B类的b方法的内存地址,将符号引用替换为直接引用(内存地址)。         

       3.初始化

             初始化就是执行类的构造器的阶段

 

6.  拦截器和过滤器的区别

          过滤器:依赖于servlet容器,可以对几乎所有请求进行过滤,一个过滤器只能在容器初始化时调用一次,使用过滤器的目的是过滤一些操作,获取我们想要获取的数据(字符编码过滤器)

         拦截器:依赖于Web框架,在实现上基于java反射机制,属于面向切面编程的一种运用,一个拦截器在一个controller声明周期之内可以多次调用,缺点是只能对controller请求进行拦截,对其他一些比如直接访问静态资源的请求则没办法进行拦截处理

          区别: ①过滤器可以对几乎所有的请求起作用,只能在请求的前后使用,而拦截器只能对action请求起作用,可以详细到                                每个方法

                      ②过滤器是基于回调函数(doFilter),拦截器是基于Java反射

                      ③ 拦截器依赖web容器,过滤器依赖servlet容器。

                      ④ 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

                      ⑤ Filter在只在Servlet启动前后起作用。而拦截器能够深入到方法前后、异常抛出前后等,可以访问action上下                                   文值栈里的对象,而过滤器不能访问。

 

    7.  AOP和OOP的区别   

       AOP和OOP是面向不同领域的两种设计思想     

       AOP:面向切面编程,spring框架中利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,主要功能是:日志记录,性能统计,事务处理,异常处理

       OOP:面向对象编程,核心思想是针对业务处理过程的实体及其属性和小那个我进行抽象封装,以获得更加清晰高效的逻辑单元划分

        区别:面向目标不同:OOP是免息名词领域,AOP是面向动词领域

                   思想结构不同:OOP是纵向结构,AOP是横向结构

                   注重方面不同:OOP注重业务逻辑单元的划分,AOP偏重业务处理过程的某个步骤

LT8711/LT8712 Type-C转HDMI设计方案|替代LT8711/LT8712芯片|GSV2201可完全替代兼容LT8711/LT8712 LT8711UX是一款高性能C/DP1.2型至HDMI2.0转换器,用于将USB Type-C源或DP1.2源连接到HDMI2.0接收器。该LT8711UX集成了一个DP1.2兼容的接收器,和一个HDMI2.0兼容的发射器。此外,还包括两个CC控制器,用于CC通信,以实现DP Alt模式和功率传输功能,一个用于上游Type-C端口和另一个用于下游端口。 阅读详情

相关推荐

pikachu靶场: 暴力破解第四关(token防爆破)

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个 Token 同时将此 Token 返回给客户端。此外,Token 是有时效的,一段时间之后或下一次请求时用户需要重新验证。

X_shiguang的博客 1720

Intelligent Java Documentation

Intelligent Java Documentation关于此文档与我沟通 关于此文档 后序会提供其他的阅读方式。 HTML PDF EPUB 与我沟通 微博 邮箱

哈喽天方方 363

Linux双网卡设置IP属于同一网段的ping方法以及现象记录分析

文章目录前言ping以及MAC地址总结 前言 写在前面:经常遇到客户将板卡上的两个网络设备的IP地址设置为同一网段的情况,比如eth0:192.168.0.232,eth1:192.168.0.30. 我的解释是,不能设置为同一网段,或者使用其中一个时候下线另外一个网卡。但是我不知道这个说法到底是根据什么,查了很多资料也没找到明确的说法,但是下面这个实验能够说明一些现象的原因。 ping以及MAC地址 首先查看网卡的信息 ifconfig 因为两个网卡都在同一个网段,所以如果这个时候直接和我们的主机(I

“逛丢一只鞋”的博客 1万+

Java 环境配置 + IntelliJ IDEA 使用指南

JDK (Java Development Kit), Java开发工具包:用于开发、编译、调试和运行 Java 应用程序所需的环境。JDK 是 Java 开发的基础,任何想要进行 Java 开发的开发者都需要安装 JDK。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 7910

以LAN8720A为例的以太网硬件设计方案

输入时钟(XTAL1/CLKIN,XTAL2):推荐外加25MHz(性价比较高)晶振为PHY芯片提供时钟,PHY芯片内部PLL将其倍频为50MHz来使用,亦可使用直接使用50MHz晶振。三位MODE通过高低电平组合分别对应以上8种模式 ,包含10M半双工,10M全双工,100M半双工,100M全双工,是否启用自协商协议,CRS是否有效等。VDDCR:1.2V电源,可由芯片内部稳压电源提供,亦可由外部电源提供,由外部电源提供可降低芯片功耗。REF_CLK:参考时钟,由MAC或外部时钟晶振向PHY芯片提供。

weixin_46154042的博客 5885

Python爬虫实战:避开巨潮资讯网反爬,稳定获取上市公司年报PDF下载地址

本文详细介绍了如何使用Python和Selenium突破巨潮资讯网的动态加载限制,稳定获取上市公司年报PDF下载地址。通过模拟真实用户操作、智能等待策略和反反爬虫技巧,帮助开发者高效爬取财经数据,适用于股票代码查询和年报分析等场景。

weixin_29065659的博客 1668

Intelligent Java Getting Started

Intelligent Java Getting Started涉及内容示例环境参考资料 涉及内容 面向对象 Java语法 Java内建工具 优秀第三方工具 涉及一些设计模式、数据结构和算法 Java虚拟机 示例环境 JDK 8 IntelliJ IDEA 参考资料 [1] : 《Java编程思想》 [2] : 《Java并发编程的艺术》 [3] : 《Effective Java》 [4...

哈喽天方方 371

Open3D 点到面的ICP配准算法【2025最新版】

点到面的ICP(python版本)博客长期更新,本文最近一次更新时间为:2025年2月2日,代码已更新至Open3D 0.18.0版本。

点云侠的博客 38万+

IntelliJ IDEA使用技巧一览表

在使用InelliJ IDEA的过程中,通过查找资料以及一些自己的摸索,发现这个众多Java程序员喜欢的IDE里有许多值得一提的小窍门,如果能熟练的将它们应用于实际开发过程中,相信它会大大节省你的开发时间,而且随之而来的还会有那么一点点成就感:)Try it! 1、写代码时用Alt-Insert(Code|Generate…)可以创建类里面任何字段的getter与setter方法。 <?x...

SailingAptech的专栏 224

手把手带你死磕ORBSLAM3源代码(一)目录详解

ORB-SLAM3是一种基于特征点的稀疏实时单目SLAM(Simultaneous Localization and Mapping)系统。它是ORB-SLAM系列模型的第三代版本,用于在无人机、机器人和增强现实等领域中进行实时定位和建图。ORB-SLAM3使用了一种特征点提取和描述算法,称为ORB(Oriented FAST and Rotated BRIEF)。该算法能够提取图像中的稳定特征,并将其用于地图建立和相机定位。

anananajiushiwo的博客 2301

微信小程序 - 苹果ios无法播放视频、安卓android手机可以播放,使用video播放MP4视频时安卓正常播放视频iOS无法播放出现黑屏、加载失败或一片黑没反应等(uniapp微信小程序也能解决)

微信小程序ios无法播放视频,微信小程序 video标签 ios不能播放视频或视频黑屏,ios无法播放视频,android手机可以播放,视频格式为mp4,uniapp微信小程序安卓设备android可以播放在线网络视频 ,苹果ios设备无法播放视频,微信小程序 video标签 ios不能播放视频或视频黑屏,安卓手机正常播放iPhone手机却黑屏,如何解决这个问题,在线播放视频URL链接,iOS无法播放MP4视频文件的解决方案,在Android设备上可以正常播放,但在iOS设备上却出现黑屏、无法加载或无法播放

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

Java开发神器IntelliJ IDEA全攻略:下载、安装、开发与调试超详细教程

本文主要围绕 IntelliJ IDEA 展开。首先概述其作为 Java 等语言开发集成环境的强大之处及版本差异,接着详细说明了在 Windows 和 macOS 系统下的下载、安装步骤,包括安装过程中的各种设置。

2301_82300081的博客 1651

ransac拟合2D圆(三点定圆 c++详细版)

RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。

twnkie的博客 1047

Java基础题练习试卷1

在自定义类中,如果没有重写 equals () 方法,默认比较的是对象的内存地址,与 == 的效果相同;方法重写:发生在子类与父类之间,子类重写父类的方法,方法名、参数列表、返回值类型必须相同(返回值类型可以是父类方法返回值类型的子类),访问权限不能比父类更严格,抛出的异常不能比父类更多。解析:Java中变量命名不能以数字开头,变量由字母、下划线、数字、符号组成,但数字不能开头,A 和 a 在 Java 中是不同的变量,不同类型的变量,如果在同一作用域内,不建议起相同的名字。java 和.java。

weixin_42437183的博客 702

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java 洛谷题单【数学1】基础数学问题

java 洛谷题单【数学1】基础数学问题 java全AC代码,附带详细解题思路以及代码注释。持续更新洛谷题单中……

Hdejac的博客 1430

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java基础50题(1) 1~10题

不说什么了,从最基础的开始吧。不论多简单的题目,自己不动手敲一遍是不可能深刻理解的。嘴上说说谁都会。 2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems 第一题 ## 题目:原题是生兔子的问题 思路:其实就是...

Lawliet_233的博客 457

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java 基础题1

一些运算的基础题。1. 写出下列程序运行结果。public class JoyOfHex {    public static void main(String[] args) {            System.out.println(Long.toHexString(0x100000000L+0xcafebabe));    }} 2. 写出下列程序运行结果。

weixs的专栏 378

java基础易错题1

1.String s = new String("xyz");创建了几个StringObject? A:两个或者一个都有可能 B:两个 C:一个 D:三个 答:B 解析: 执行String b = new String("xyz"),字符串常量值,数据共享的话, String aString = "123"; String bString = "123"; System.out.println(aString) String s = “123”;这个语句有几个对象产生? 若字.

weixin_64881460的博客 1616

牛客刷题——Java基础1

一、语法基础 switch()中的参数类型 1.7之前:byte、short、int、char及其包装类和枚举类型enum 1.7之后,引入String 标识符: 由数字、字母、下划线三部分组成,不能由数字开头、不能包含除_和$之外的字符、严格区分大小写、不能包含关键字 静态域(静态方法,静态属性,静态代码块) 静态代码块、静态属性按照顺序执行和声明 静态方法最后执行 例题: 三元操作符类型的转换规则: 若两个操作数不可转换,则不做转换,返回值为Object类型 若两个操作数是明确类型

qq_50604294的博客 458

Java的基础题总结1

一.变量基础题 public static void main(String[] args) { String a = "安澈澈"; char b= 'm'; int age = 21; int c = b; System.out.println(a+" "+ b +" " +"人工智能"); System.out.println(age >=18?"我已经成年了":"我还未成年"); } 二.流程控制题 1. public static void main(Stri

anchei的博客 193

Java——经典基础题【刷题1】

Java——经典基础题【刷题1】

m0_64387122的博客 639

Java基础题笔记1

三位数是从100-999 public class Flower{ public static void main(String arge[]){ int n = 100; while (n < 1000) { int a = n / 100 % 10;//int a=n/100; int b=(n-a*100)/10;//int b = n / 10%10; int c = n % 10; if (Math.pow(a, 3) + Math.pow(b, 3) +

悢七的优快云博客 169

80题通关Java基础:第1至4题

目录第1题 输入教材第25页例2-1的程序(10分)第2题 运行结果题(5分)第3题 代码填空. 键盘输入Scanner(10分)第4题 编写程序,判断是否被3和8整除(10分) 第1题 输入教材第25页例2-1的程序(10分) 此题的上机步骤是: 建立一个Java项目,名称可以按题号取名; 建立一个类, 类的名称为Main。这一点非常重要; 输入代码; 提交代码,注意题号要一致。 本题特别要求如下: 将教材P25程序中public class Division修改为 public class Main

m0_51456787的博客 2669

Java基础程序题Day1

** Day1程序题 ** 1.Hello World! class hello{ public static void main(String[] args){ System.out.println("Hello World!"); } } 2.近似求圆周率 可以使用以下公式求圆周率(p) p=4*(1-1/3+1/5-1/7+1/9-1/11+…) 编写程序,显示p=4*(1-1/3...

qq_43701330的博客 503

java基础题1

编写程序,要求统计10人姓名、学号、6门科目分别的成绩,并计算总成绩且按高低名次排序,输出每个人的排名及总成绩。(程序中至少包含三个类) package New; import java.util.Scanner; public class Demo { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in)...

awbxx的博客 247

面试- Java基础题1

面向对象和面向过程是两种不同的处理问题的角度。面向对象简称OOP,是一种编程的方法论,通过“对象”来组织代码和数据。OOP的核心思想在于将对象的属性和行为封装在一起,提高代码复用性、灵活性和扩展性。面向对象主要特点有以下:1. 封装:通过封装隐藏对象的状态信息,不允许外部直接进行访问,通过类的方法获取该类的私有属性。连接数据库的时候,我们只需要调用方法就可以,不需要关心内部实现细节,这就是封装的好处。2. 继承:创建一个新类从父类中继承属性和方法,可以直接扩展方法;

Hunter_11的博客 679
上一篇: 多线程知识点(1)
下一篇: mybatis知识点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值