java试题大全

1、面向对象的特征有哪些方面?-抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。-继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫父类(超类、基类)、得到继承的类叫子类(派生类)。-封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。-多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。实现多态需要做两件事:1).方法重写(子类继承父类并重写父类中的方法);2).对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)2、访问修饰符public,private,protected,以及不写(默认...
代码星球 代码星球·2020-04-08

假期充电: 一道并发java试题的N种解法

疫情居家隔离期间,在网上看了几个技术教学视频,意在查漏补缺,虽然网上这些视频的水平鱼龙混杂,但也有讲得相当不错的,这是昨晚看到的马老师讲的一道面试题,记录一下: 如上图,有2个同时运行的线程,一个输出ABCDE,一个输出12345,要求交替输出,即:最终输出A1B2C3D4E5,而且要求thread-1先执行。主要考点:二个线程如何通信?通俗点讲,1个线程干到一半,怎么让另1个线程知道我在等他? 方法1:利用LockSupportimportjava.util.concurrent.locks.LockSupport;publicclassTest01{//这里一定要初始化成null,否则在线程内部无法引用,会提示未初始化staticThreadt1=null,t2=null;publicstaticvoidmain(String[]args){char[]cA="ABCDEFG".toCharArray();char[]cB="1234567".toCharArray();t1=newThread(()->{for(charc:cA){System.out....

一些常见的Java面试题 & 面试感悟

近期在面试,深感这个行业的浮躁,一些菜不辣基的弱鸡开出的工资待遇要求,超过了我。不知道他们是怎么拿到那么高的工资的,难道是他在公司有亲戚朋友吗?有后台吗?是行业热钱真的过多了吗?还是说我TM拖行业的大腿了?。。然后深感很多码农就真的只是码农,一问三不知,就知道会CRUD,对底层机制一无所知(或只知道皮毛,如我),没有专研精神,工作毫无激情。有的人家庭环境优越、生活优渥,却仍然要和我这样的十九线农村出来的社会底层人员抢一个码农的苦逼饭碗。。。为他们的未来感到担忧(包括我。)。天啊,为什么这样的苦逼的毫无钱途的工作,这么多人抢啊。。我的小时候印象中,工程师好像不是这样的吧,现在感觉IT工程师,特别是Java工程师真的烂大街了,真TM不值钱啊。 我也被面试(偷偷的^_^),然后深感这个行业的不规范,很多面试官(包括平安科技这样的)就TM的乱来,出题主观随意,根本没套路,视Java码农如草芥。别人大老远辛辛苦苦跑一趟,面试官也不事先了解下候选的Java码农,随意的出题,随意的瞎JB问问。你一个工作十年的高级人才,还来问“接口和抽象类有什么区别”;明明是面试高级...

Java试题

原创 2016年04月27日09:08:20标签:快速排序 /排序算法 /java22235快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的。快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动次数。同时采用“分而治之”的思想,把大的拆分为小的,小的拆分为更小的,其原理如下:对于给定的一组记录,选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分,直到序列中的所有记录均有序为止。(1)最坏时间复杂度 最坏情况是指每次区间划分的结果都是基准关键字的左边(或右边)序列为空,而另一边区间中的记录仅比排序前少了一项,即选择的关键字是待排序记录的最小值或最大值。最坏情况下快速排序的时间复杂度为。&nbs...
代码星球 代码星球·2020-04-03

最全最新java面试题系列全家桶(带答案)

置顶 2019年04月06日22:40:28 青春季风暴 阅读数14082 文章标签: java面试题技术栈 更多分类专栏: 面试 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/pzq915981048/article/details/89061551 如有需要获取最新资料,以及更全面的PDF版面试题,请关注微信公众号“西柚向西”,回复“面试题”获取面试资料。回复“视频”获取最新最全的java技术栈开发视频。公众号会持续同步最新技术视频、面试题精选,以及职场经验、技能分享等,欢迎关注。                  &n...

JAVA面试题:69道Spring面试题和答案

Spring概述依赖注入SpringbeansSpring注解Spring数据访问Spring面向切面编程(AOP)SpringMVC1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。容器:Spring 包含并管理应用中对象的生命周期和配置。MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务...

JAVA试题:equals()方法和== 区别

http://bbs.csdn.net/topics/390000725 总结:equals在没重写之前和==一样,重写之后,equals只要内容一样即为trueequals跟==一般情况下是等价的,但是对于String类型,它重写了equals方法,比较的是内容。默认情况下两个都是比较的引用地址,除非你重写equals方法。 equals源码:publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;}if(anObjectinstanceofString){StringanotherString=(String)anObject;intn=count;if(n==anotherString.count){charv1[]=value;charv2[]=anotherString.value;inti=offset;intj=anotherString.offset;while(n--!=0){if(v1[i++]!=v2[j++])returnfalse;}returntrue;}}ret...

JAVA试题:Spring中bean的生命周期

Spring中bean的生命周期短暂吗?在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意安全(Thread-safe)的议题,防止多个线程同时存取共享资源所引发的数据不同步问题。然而在spring中可以设定每次从BeanFactory或ApplicationContext指定别名并取得Bean时都产生一个新的实例:例如: 在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取得的Bean时都会产生一个新的实例一个Bean从创建到销毁,如果是用BeanFactory来生成,管理Bean的话,会经历几个执行阶段(如图1.1):  1:Bean的建立:容器寻找Bean的定义信息并将其实例化。2:属性注入:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性3:Bean...

JAVA试题:String 堆内存和栈内存

java把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存 在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配,当在一段代码块定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用 堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由jvm(javavirtualmachine)的自动垃圾回收器来管理,在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象 具体地说:栈和堆都是java用来在Ram中存放数据的地方,与c++不同,java自动管理栈和堆,程序员不能直接地设置栈或堆。 java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray、multiane...

在浏览器中怎么打开javascript

一、如何打开和启用Javascript1.在Chrome中打开和启用JavascriptChrome浏览器默认情况下已经启用了Javascript,不需要做任何设置。如果需要手动启用或禁用Javascript,可以按照以下步骤操作:a.在Chrome浏览器的地址栏输入chrome://settings/content/javascript,并按回车键。b.在Javascript区域中选择“允许所有网站都运行JavaScript”选项。c.如果需要禁用Javascript,可以选择“不允许网站运行JavaScript”选项。2.在Firefox中打开和启用JavascriptFirefox浏览器默认情况下已经启用了Javascript,不需要做任何设置。如果需要手动启用或禁用Javascript,可以按照以下步骤操作:a.在Firefox浏览器的地址栏输入about:config,并按回车键。b.在搜索栏中输入javascript.enabled,并按回车键。c.将javascript.enabled的值设置为true,即可启用Javasc...

RuoYi—一款开源的基于SpringBoot开发的轻量级Java快速开发框架

若依框架采用前后端分离的架构设计。后端基于SpringBoot,集成了许多常用的功能模块,包括权限管理、任务调度、数据字典、系统监控等。这些模块使得开发人员能够快速搭建系统基础功能,专注于业务逻辑的实现。前端使用了Vue.js作为主要的前端开发框架,结合了ElementUI等组件库,提供了用户友好的界面和丰富的交互体验。Vue.js的灵活性和可扩展性使得前端开发更加高效。 权限管理:支持灵活的权限控制和角色管理,可根据不同用户需求进行配置和定制。代码生成:提供代码生成器,根据数据库表结构快速生成对应的增删改查功能代码,节省开发时间。定时任务:内置任务调度功能,支持定时执行任务、任务监控和管理。数据字典:方便管理系统中常用的数据字典,便于统一管理和维护。系统监控:提供系统运行监控功能,包括日志管理、服务器状态监控等。多租户支持:支持多租户模式,可以为不同的租户提供独立的系统环境和数据隔离。 若依框架适用于构建各种企业级管理系统,例如人力资源管理系统、客户关系管理系统、项目管理系统等。由于其模块化和可扩展性,开发人员可以根据具体需求进行定制和扩展,快速搭建适合企业需求的...

java代码获得周六或者周日的个数

java代码获得周六或者周日的个数/***查询日期间有几天一周中的某一天*日期格式yyyy-MM-ddyyyy-MM-dd1-7(表示周一到周日)*@paramstartDate准备查询的起始日期*@paramendDate准备查询的结束日期*@paramdayOfWeek准备查的一周中的某一天(准备查周几?)*@return包含所查周几的天数*@throwsParseException不支持跨年查询、不支持结束日期早于起始日期、周几输入错误等*/publicstaticintgetMondayNumber(DatestartDate,DateendDate,intdayOfWeek)throwsParseException{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");intdifferenceDay=0;//实例化起始和结束Calendar对象CalendarstartCalendar=Calendar.getInstance();CalendarendCalendar=Calendar.getInstance();//...

Java怎么根据ip地址获取归属地

Java中可以使用第三方库来根据IP地址获取归属地,其中比较常用的库是GeoIP2和ip2region。使用GeoIP2库:首先需要下载GeoIP2的Java库,然后在代码中使用该库来获取IP地址的归属地。importcom.maxmind.geoip2.DatabaseReader;importcom.maxmind.geoip2.model.CityResponse;importjava.io.File;importjava.net.InetAddress;publicclassIPUtil{publicstaticvoidmain(String[]args)throwsException{Filedatabase=newFile("/path/to/GeoLite2-City.mmdb");DatabaseReaderreader=newDatabaseReader.Builder(database).build();InetAddressipAddress=InetAddress.getByName("128.101.101.101");CityResponseresponse...

java中arraylist命名空间是什么

Java中没有命名空间的概念,ArrayList是java.util包中的一个类。Java中没有命名空间的概念,但是可以使用包名来进行区分。例如,如果你想使用ArrayList类,可以通过导入java.util包来实现:```importjava.util.ArrayList;```然后就可以在代码中直接使用ArrayList类了:```ArrayList...

java如何计算MD5值

可以用 MessageDigest 的MD5实例来计算String的MD5值。使用 MessageDigest 和String时,一定要显式声明你的数据编码类型。如果你使用无参的 String.getBytes() ,它会以当前平台的默认编码来转换数据。不同平台的默认编码可能是不同的,这可能会导致你的数据不一致。importjava.security.*;..byte[]bytesOfMessage=yourString.getBytes("UTF-8");MessageDigestmd=MessageDigest.getInstance("MD5");byte[]thedigest=md.digest(bytesOfMessage); ...
开发笔记 开发笔记·2024-01-12
首页上一页...23456...下一页尾页