
Java
java相关技术及问题的解决
红枫忆梦
书到用时方恨少
展开
-
Java中List去重
import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import java.util.stream.Collectors;public class Test { public static void main(String[] args) { List<String> list =原创 2021-08-25 12:56:11 · 415 阅读 · 0 评论 -
【文件】从已知的路径中获取文件夹名称及遍历当前路径下的文件
import java.io.File;public class test6 { public static void main(String[] args) { String dirPath1 = "F:\\git_repository\\github\\"; String dirPath2 = "F:\\git_repository\\github\\README.md";...原创 2019-11-27 19:24:51 · 478 阅读 · 0 评论 -
java 判断日期是否为今天
import java.text.SimpleDateFormat;import java.util.Date;/** * 判断日期是不是今天 * @param date * @return 是返回true,不是返回false */public static boolean isNow(Date date) { // 默认的年月日的格式. yyyy-MM-dd p...原创 2019-11-15 14:30:47 · 12105 阅读 · 1 评论 -
java 中double类型数据转换为String类型
public class test2 { public static void main(String[] args) { double tmp = 123.456; String str = String.valueOf(tmp); System.out.println(str); }}原创 2019-11-15 14:19:23 · 4653 阅读 · 1 评论 -
【面试题】组合和继承有什么区别
组合和继承是面向对象中两种代码复用的方式。组合是指在新类里面创建原有类的对象,重复利用已有类的功能。继承是面向对象的主要特性之一,它允许设计人员根据其他类的实现来定义一个类的实现。组合和继承都允许在新的类中设置子对象(subobject),只是组合是显式的,而继承是隐式的。组合和继承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应。既然继承和组合都可以实现...原创 2019-08-08 20:03:38 · 1834 阅读 · 0 评论 -
【面试题】什么是继承
继承是面向对象中的一个非常中要的的特性。通过继承,子类可以使用父类中的一些成员变量与方法,从而能够提高代码的复用性,提高开发效率。在Java语言中,被继承的类叫基类(superclass)或父类,继承基类或父类的类叫派生类或子类(subclass)。继承是通过extends关键字来实现的,使用格式为:class 子类名 extends 父类名。继承主要有如下几个特性:Java语言不支持多重继...原创 2019-08-04 08:45:32 · 1370 阅读 · 0 评论 -
【面试题】面向对象有哪些特征
面向对象的主要特征包括抽象、继承、封装和多态。1、抽象抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中一部分,暂时不用部分细节。抽象包括两个方面:一是过程抽象;而是数据抽象。2、继承继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类...转载 2019-07-29 22:31:55 · 289 阅读 · 0 评论 -
【面试题】package有什么作用
package的中文意思是“包”,它是一个比较抽象的逻辑概念,其宗旨是把 .java 文件(Java源文件)、.class 文件(编译后的文件)以及其他resource文件(例如.xml文件、.avi文件、.mp3文件、.txt文件等)有条理地进行一个组织,以供使用,它类似于Linux文件系统有一个根,从根开始有目录和文件,然后目录中嵌套目录。具体而言,package主要有以下两个作用:提供...原创 2019-07-11 16:45:41 · 3359 阅读 · 0 评论 -
【面试题】什么是反射机制
反射机制是Java语言中一个非常重要的特性,它允许程序在运行时自我检查,同时也允许对其内部的成员进行操作。由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制,也会严重影响系统的性能。具体而言,反射机制提供的功能主要有:得到一个对象所属的类;获取一个类的所有成员变量和方法;在运行时创建对象;在运行时调用对象的方法;其实,反射机制非常重要的一个...原创 2019-07-09 18:00:19 · 656 阅读 · 0 评论 -
【面试题】为什么Java中有些接口没有任何方法
由于Java不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念。接口是抽象方法定义的集合(接口中也可以定义一些常量值),是一种特殊的抽象类。接口中的常量值默认使用public static final修饰。由于一个类可以实现多个接口,因此通常可以采用实现多个接口的方式来间接达到多重继承的目的。在Java语言中,有些接口内部没有声明任何方法,也就是说...原创 2019-06-04 11:04:04 · 894 阅读 · 0 评论 -
【面试题】什么是构造函数
构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。在Java语言中,构造函数具有以下特点:构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)。每个类可以有多个构造函数。当开发人员没有提供构造函数时,编译器在把源代码编译成字节码的过程中会提供一个没有参数默认的构造函数,但该构造函数不会执行任何代码。如果开发人员提供了构造函数,那么编译器就不会在创建默认的构造...原创 2019-05-31 08:27:05 · 8399 阅读 · 0 评论 -
【面试题】如何实现在main()方法执行前输出“Hello World”
众所周知,在Java语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,但这是否意味着main()方法就是程序运行时第一个被执行的模块呢?答案是否定的。在Java语言中,由于静态块在类被加载时就会被调用,因此可以在main()方法执行前,利用静态块实现输出“Hello World”的功能,以如下代码为例。public class Test{ static ...原创 2019-05-28 08:23:08 · 808 阅读 · 0 评论 -
【面试题】Java程序初始化的顺序是怎样的
在Java语言中,当实例化对象时对象所在类的所有成员变量首先要初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象。Java程序的初始化一般遵循3个原则(优先级一次递减):静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次;父类优先于子类进行初始化;按照成员变量的定义顺序进行初始化。即使变量定义散...原创 2019-05-30 08:46:41 · 410 阅读 · 0 评论 -
【面试题】为什么需要 public static void main (String[ ] args) 这个方法?
public static void main (String [ ] args) 为Java程序的入口方法,JVM在运行程序时,会首先查找 main() 方法。其中,public 是权限修饰符,表明任何类或对象都可以访问这个方法,static 表明 main() 方法是一个静态方法,即方法中的代码是存储在静态存储区,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过类名....原创 2019-05-27 08:54:36 · 3320 阅读 · 0 评论 -
【面试题】如何实现类似于C语言中函数指针的功能
在C语言中,有一个非常重要的概念——函数指针,其最重要的功能是实现回调函数。什么是回调函数呢?所谓回调函数,就是指函数先在某处注册,而它将在稍后某个需要的时候被调用。在Windows系统中,开发人员想让系统动态链接库(Dynamic Link Library,DLL)调用自己编写的一个方法,于是利用DLL当中回调函数的接口来编写程序,通过传递一个函数的指针来被调用,这个过程就称为回调。回调函数一般...转载 2019-07-26 22:02:35 · 268 阅读 · 0 评论 -
【面试题】面向对象的开发方式有什么优点
采用面向对象的开发方式有诸多的优点,下面主要介绍其中3个优点。1. 较高的开发效率采用面向对象的开发方式,可以对现实的事物进行抽象,可以把现实的事物直接映射为开发的对象,与人类的思维过程相似,例如可以设计一个Car类来表示现实中的汽车,这种方式非常直观明了,也非常接近人们的正常思维。同时,由于面向对象的开发方式可以通过继承或者组合的方式来实现代码的重用,因此可以大大提高软件的开发效率。2. ...原创 2019-08-01 07:23:03 · 5145 阅读 · 0 评论 -
CentOS7下JDK1.8安装及环境配置
下载打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ,进入JDK1.8下载官网,或者直接百度JDK1.8,也可进入下载官网。进入官网后,按照所给信息下载对应系统版本的JDK,这里以CentOS 7.3系统环境下安装jdk-8u144-linux-x64.tar....原创 2019-08-08 14:19:32 · 268 阅读 · 0 评论 -
Java实现判断中文字符串长度
由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串长度。例如:“123Java编程”按字节长度计算是11,而按Unicode计算则是7。为了获得11,需要根据字符的ASCII从头扫描,来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。 因此,可以编写如下的方法来获得以字节为单位...原创 2019-10-08 18:55:10 · 6207 阅读 · 0 评论 -
【面试题】break、continue以及return有什么区别
break用于直接强行跳出当前循环,不再执行剩余代码。当循环中遇到break语句时,忽略循环中任何其他语句和循环条件测试,程序控制在循环体后面的语句重新开始。所以当多层循环嵌套,并且break语句出现在嵌套循环中的内层循环时,它将仅仅只是终止了内层循环的执行,而不影响外层循环的执行。...原创 2019-09-13 18:36:10 · 537 阅读 · 0 评论 -
mybatis与hibernate的区别
1.技术特点MyBatis:好处通过直接编写SQL语句,可以直接对SQL进行性能的优化;学习门槛低,学习成本低。只要有SQL基础,就可以学习mybatis,而且很容易上手;由于直接编写SQL语句,所以灵活多变,代码维护性更好。缺点不能支持数据库无关性,即数据库发生变更,要写多套代码进行支持,移植性不好。Mysql:limitOracle:rownum需要编写结果映射...原创 2019-08-28 22:06:16 · 121 阅读 · 1 评论 -
【面试题】this与super有什么区别
在Java语言中,this用来指向当前实例对象,它的一个非常重要的作用就是用来区分对象的成员变量与方法的形参(当一个方法的形参与成员变量的名字相同时,就会覆盖成员变量),示例如下:class people{ String name; //正确的写法 public People(String name){ this.name = name; } //错误的写法 public Peo...原创 2019-08-20 20:00:38 · 454 阅读 · 0 评论 -
【面试题】如何获取父类的类名
Java语言提供了获取类名的方法:getClass().getName(),开发人员可以调用这个方法来获取类名,代码如下所示:public class Test{ public void test(){ System.out.println(this.getClass().getName()); } public static void main(String[] args){ n...原创 2019-08-20 19:33:16 · 697 阅读 · 0 评论 -
【面试题】内部类有哪些
在Java语言中,可以把一个类定义到另一个类的内部,在类里面的这个类就叫做内部类,外面的类叫做外部类。在这种情况下,这个内部类可以被看作外部类的一个成员(与类的属性和方法类似)。还有一种类被称为顶层(top-level)类,指的是类定义代码不嵌套在其他定义中的类。需要注意的是,嵌套类(Nested Class)与内部类(Inner Class)类似,只是嵌套类是C++的说法,而内部类是Java的...原创 2019-08-20 19:07:58 · 439 阅读 · 0 评论 -
【面试题】Java中的clone方法有什么作用
由于指针不仅会给开发人员带来使用上的不便,而且也是造成程序不稳定的根源,为了消除C/C++语言的这些缺点,Java语言取消了指针的概念,但这只是在Java语言中没有明确提供指针的概念和用法,而实质上每个new语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如何去操作这个指针而已。由于Java取消了指针的概念,因此开发人员在编程过程中往往忽略了对象和引用的区别,示例如下:cl...原创 2019-08-07 20:16:32 · 1153 阅读 · 0 评论 -
【面试题】多态的实现机制是什么
多态是面向对象程序设计中代码重用的一个重要机制,它表示当同一个操作作用在不同对象时,会有不同的语义,从而会产生不同的结果,例如,同样是执行“+”操作,“3+4”用来实现整数相加,而“3” + “4” 却实现了字符串的连接。在Java语言中,多态主要有以下两种表现方式:方法的重载(overload)重载是指同一个类中有多个同名的方法,但这些方法有着不同的参数,因此在编译时就可以确定到底调用哪个...原创 2019-08-13 19:46:03 · 993 阅读 · 0 评论 -
【面试题】面向对象与面向过程的区别
面向对象与面向过程主要有以下几个方面的不同之处:1.出发点不同面向对象方法是用符合常规思维的方式来处理客观世界的问题,强调把问题领域的要领直接映射到对象及对象之间的接口上。而面向过程方法强调的则是过程的抽象化于模块化,它是以过程为中心构造或处理客观世界的问题。2.层次逻辑关系不同面向对象方法则是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单元,尽可能地使计算机世...转载 2019-07-28 21:29:29 · 3698 阅读 · 1 评论 -
【面试题】Java与C/C++有什么异同
Java与C++都是面向对象的语言,都是用了面向对象思想(例如封装、继承、多态等),由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的可重用性。需要注意的是,二者并非完全一样,下面主要介绍它们的不同点:Java为解释性语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后由JVM解释执行。而C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此...原创 2019-05-26 15:25:36 · 892 阅读 · 0 评论 -
【面试题】Java语言有哪些优点
Java为纯面向对象的语言《Java编程思想》提到Java语言是一种 “Everything is object” 的语言,它能够直接反应现实生活中的对象,例如火车、动物等,因此通过它,开发人员编写程序更为容易。平台无关性Java语言可以 “一次编译,到处运行”。 无论是在Windows平台还是在Linux、MacOS等其他平台上对Java程序进行编译,编译后的程序在其他平台都可以运...原创 2019-05-25 20:07:37 · 674 阅读 · 0 评论 -
【面试题】包装类,装箱和拆箱
虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用...原创 2018-08-24 21:46:46 · 197 阅读 · 0 评论 -
【面试题】是否可以主动通知JVM进行垃圾回收?
由于垃圾回收器的存在,Java语言本身没有给开发人员提供显式释放已分配内存的方法,也就是说,开发人员不能实时地调用垃圾回收器对某个对象或所有对象进行垃圾回收。但开发人员却可以通过调用System.gc()方法来“通知”垃圾回收器运行,当然,JVM也并不会保证垃圾回收器马上就会运行。由于System.gc()方法的执行会停止所有响应,去检查内存中是否有可回收的对象,这会对程序的正常运行以及性能造成极...原创 2018-08-31 15:03:06 · 2032 阅读 · 0 评论 -
Java中byte与String的相互转化
String转化为byte[]数组String str = "asd";byte[] bs = str.getBytes();byte[]数组转化为String字符串byte[] arr = {1,2,3};String s = new String(arr);设置格式byte[] arr = {1,2,3};String res = new String(arr,...原创 2018-08-31 14:48:04 · 2520 阅读 · 0 评论 -
【面试题】Exception、Error、运行时异常与一般异常有何异同
目录ErrorExceptionThrowable是所有Java程序中错误处理的父类,有两种子类:Error和Exception。ErrorError表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Error类体系描述了Java运行系统中的内部错误以及资源耗尽的...原创 2018-08-21 10:01:38 · 1377 阅读 · 0 评论 -
【面试题】抽象类和接口的联系和区别
接口与抽象类的联系与区别 接口 抽象类 联系 1.都不能被实例化; 2.都位于继承树的顶端,用于被其他类实现和继承; 3.都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。 区别 只包含抽象方法、静态方法和默认方法,不能为普通方法提供方法实现 完全包含普通方法; ...原创 2018-08-28 09:58:34 · 3320 阅读 · 0 评论 -
【面试题】Object有哪些基本的方法
1. clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2. getClass方法final方法,获得运行时类型。3. toString方法该方法用得比较多,一般子类都有覆盖。4. finalize方法该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用...转载 2018-08-30 21:36:30 · 420 阅读 · 0 评论 -
【面试题】final, finally, finalize 的区别
目录final修饰类修饰方法修饰变量finaly易错点finalizefinal在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。修饰类当用final修饰类的时,表明该类不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:final类中所有的成员方法都会隐式的定义为final方法。修饰方法...原创 2018-08-20 16:25:16 · 231 阅读 · 0 评论 -
【面试题】int 和 Integer 有什么区别,Integer的值缓存范围
目录int与Integer的基本使用对比int与Integer的深入对比int与Integer的基本使用对比Integer是int的包装类;int是基本数据类型; Integer变量必须实例化后才能使用;int变量不需要; Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值; Integer的默认值是null;int的默认值是0。int...原创 2018-08-23 10:20:57 · 3174 阅读 · 2 评论 -
【面试题】重载和重写的区别
目录重载(Overloading)重载的规则重写方法的规则重载和重写(覆盖)的特点Overload 特点Override 特点总结overload(重载)override(重写)重载(Overloading)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一...原创 2018-08-27 09:25:39 · 16432 阅读 · 4 评论 -
Windows下JDK1.8安装及环境配置
目录下载安装环境配置下载打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ,进入JDK1.8下载官网,或者直接百度JDK1.8,也可进入下载官网。进入官网后,按照所给信息下载对应系统版本的JDK,这里以安装jdk-8u60-windows-x...原创 2018-08-17 11:03:51 · 70449 阅读 · 1 评论 -
【面试题】常见的运行时异常
java.lang.ArithmeticExceptionArithmeticException是出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。java.lang.NullPointerException这个异常的解释是 "程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,...原创 2018-08-22 10:48:00 · 5930 阅读 · 3 评论 -
【面试题】String、StringBuilder、StringBuffer之间的区别
三者在执行速度方面的比较:StringBuilder > StringBuffer > StringString <(StringBuffer,StringBuilder)的原因String:字符串常量StringBuffer:字符串变量StringBuilder:字符串变量从上面的名字可以看到,String是“字符串常量”,也就是不可改变的对象。对于...原创 2018-08-25 11:02:57 · 237 阅读 · 0 评论