- 博客(56)
- 收藏
- 关注
原创 说出一些常用的类,包,接口,请各举5个
常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integerjava.util.Date,System,Class,List,HashMap常用的包:java.lang java.io java.util java.sql ,javax.servlet,org.apache.strtuts.action,org.hibernate常用的接口:Remote List Map Document No
2020-06-04 16:07:02 616
原创 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
对。如果对象要保存在HashSet或HashMap中,它们的equals相等,那么,它们的hashcode值就必须相等。如果不是要保存在HashSet或HashMap,则与hashcode没有什么关系了,这时候hashcode不等是可以的,例如arrayList存储的对象就不用实现hashcode,当然,我们没有理由不实现,通常都会去实现的。...
2020-06-04 16:05:45 407
原创 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回值加粗样式...
2020-06-01 13:48:22 595
原创 Collection 和 Collections的区别
Collection是集合类的上级接口,子接口主要有Set 和List、Map。Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。...
2020-05-31 15:39:41 232
原创 什么是Servlet
servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。...
2020-05-29 17:40:06 127
原创 List、Map、Set三个接口,存取元素时,各有什么特点?
首先,List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫Collection。Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象 ,即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不进去,所以,Set集合的add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true,当集合含有与某个元素equals相等的元素时,此时a
2020-05-28 21:05:37 495
原创 List 和 Map 区别
一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。...
2020-05-28 21:00:39 225
转载 spring框架中需要引用哪些jar包,以及这些jar包的用途
spring框架中需要引用哪些jar包,以及这些jar包的用途Spring3中的jar包有20个左右,每个都有相应的功能,他们之间有依赖关系,一颗jar包可能依赖多个其他的jar包。我们就以配置pom.xml文件为例(maven项目)。Spring分为5部分:core、aop、data access、web、test,每个圆角矩形对应一个jar包,在maven这些jar的groupId都是"org.springframework",每个jar包都有不同的"artfactId"。另外还有“instrumen
2020-05-28 08:54:19 4642
原创 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序最终的程序代码如下:public class ThreadTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new ThreadTest().init(); } public void init(
2020-05-27 19:41:58 1163
原创 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。public class ThreadTest1 { private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ Thread t=ne
2020-05-27 19:37:55 233
原创 简述synchronized和java.util.concurrent.locks.Lock的异同
主要相同点:Lock能完成synchronized所实现的所有功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。Lock还有更强大的功能,例如,它的tryLock方法可以非阻塞方式去拿锁。举例说明(对下面的题用lock进行了改写):package com.huawei.interview;import java.util.concurrent.locks.
2020-05-27 19:34:31 205
原创 线程的基本概念、线程的基本状态以及状态之间的关系
一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。状态:就绪,运行,sy
2020-05-27 19:32:25 371
原创 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法
分几种情况:1.其他方法前是否加了synchronized关键字,如果没加,则能。2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。4.如果其他方法是static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this。...
2020-05-27 19:29:34 217
原创 启动一个线程是用run()还是start()
启动一个线程是用run()还是start()启动一个线程是调用start()方法,使线程就绪状态,以后可以被调度为运行状态,一个线程必须关联一些具体的执行代码,run()方法是该线程所关联的执行代码。
2020-05-26 14:55:26 274
原创 反射中Class.forName()和ClassLoader.loadClass()的区别
java中class.forName()和classLoader都可用来对类进行加载。不同:1)class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法2)classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。注:Class.forName(name, initialize, loader)带参函数也可控
2020-05-25 15:47:07 415
原创 HashMap的源码,实习原理,底层结构
HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现。HashMap的链表元素对应的是一个静态内部类Entry,Entry主要包含key,value,next三个元素主要有put和get方法,put的原理是,通过hash%Entry.length计算index,此时记作Entry[index]=该元素。如果index相同就是新入的元素放置到Entry[index],原先的元素记作Entry[index].nextget就比较简单了,先遍历数组,
2020-05-25 15:12:27 170
原创 HashMap和Hashtable的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。Hashtable继
2020-05-25 15:09:27 92
原创 String类为什么是final的
final修饰的String,代表了String的不可继承性,final修饰的char[]代表了被存储的数据不可更改性。但是:虽然final代表了不可变,但仅仅是引用地址不可变,并不代表了数组本身不会变value虽然被final修饰,但是还是被改变了,但是要注意String中还有一个起作用的那就是private,私用变量,类之外无法篡改数据,这样就保证了String的不可变性。String不可变性的好处:字符串池的实现线程安全实现String可以创建HashCode不可变性...
2020-05-25 14:58:32 178
原创 sleep() 和 wait() 有什么区别
(网上的答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。)sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线
2020-05-25 09:35:27 125
原创 java中有几种方法可以实现一个线程用什么关键字修饰同步方法 stop()和suspend()方法为何不推荐使用
java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?java5以前,有如下两种:第一种:new Thread(){}.start();这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:new Thread(){ public void run(){ }}.start();第二种:new Thread(new Runnable.
2020-05-25 09:07:10 203
原创 ssesion和cooike的区别
cookie和session的区别:1、cookie数据存放在客户的浏览器上, session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。3、session会在- 定时间内保存在服务器上。 当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很多浏览器都限制一 个站点最多保存20个cookie。5、所以个人建议:将登陆信息等重要
2020-05-24 14:51:40 300
原创 get和post的区别
1.对参数的数据类型,GET只接受ASCII字符, 而POST没有限制,允许二进制。2.GET在浏览器回退/刷新时是无害的,而POST 会再次提交请求。3.GET请求只能进行url编码,而POST支持多种编码方式。4.POST比GET更安全,因为GET参数直接暴露在URL上,POST参数在HTTP消息主体中,而且不会被保存在浏览器历史或web服务器日志中。...
2020-05-24 14:50:12 146
原创 说说servlet的生命周期
servlet的生命周期是指servlet从加载、初始化、服务到销毁的一个过程,也就是Servlet的出生到结束**而Servlet是Java Web开发的核心。简单的说Tomcat等Java Web服务器都是以实现Servlet标准为基础进行编写的,这就决定了Servlet在Java Web开发中的地位。对于Servlet需要了解的是,servlet是javaweb 应用的基础,很多框架都是封装servlet实现的,而servlet的生命周期全部由Web容器来控制,初始化、服务、销毁用户是可以自己.
2020-05-24 14:48:31 331
原创 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么
java中多线程的实现方法有两种: 1. 直接继承thread类; 2.实现runnable接口;同百步的实现方法有五种: 1.同步方法; 2.同步代码块; 3.使用特殊域变量(volatile)实现线程同步; 4.使用重入锁实度现线程同步; 5.使用局部变量实现线程同步。其中多线程实现过程中需注意重写或者覆盖run()方法,而知对于同步的实现方法中使用较常使用的是利用synchronized编写同步方法和代码块道。...
2020-05-24 14:46:32 1502
原创 Redis数据类型有哪些?他们的使用场景都是什么?
Redis数据类型:String(字符串),List(列表),Hash(字典,哈希表),Set(集合),Sorted Set(有序集合)String(字符串):String是简单的 key-value 键值对,value 不仅可以是 String,也可以是数字。String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr,decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。String在redis内部存储默认就是一个字.
2020-05-24 14:42:49 479
原创 java的三大特性
java的三大特征是封装、继承、多态,每种特征都对应着不同的概念。封装也被称为信息隐藏,是指利用抽象的数据类型将数据和它对应的操作封装在一起,使它不能够分割,这个带来的好处就是实现了专业的分工。继承就是一个类继承另一 个类,它的目的就是实现代码的重新回收利用,结果就是继承的子类自动有了父类的属性和方法。多态就是在抽象的层面.上实现一个统一的行为, 相同的事物,只是它们的表现行为不相同,多态是在封装和继承的基础上发展起来的。...
2020-05-24 14:37:48 304
原创 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义在try块中可以抛出异常吗
Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果系统会抛出(throw)一个异常对象,可以通过它的类型来捕获(catch)它,或通过总是执行代码块(finally)来处理;try用来指定一块预防所有异常的程序;catch子句紧跟在try块后面,用来指定你想要捕获的异常的类型;throw语句用来明确地抛出一个异常;throws用来声明一个方法可能抛出的各种异常(当然声明异常时允许无病呻吟);fina.
2020-05-24 14:32:14 678
原创 error和exception有什么区别
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。...
2020-05-24 14:28:36 156
原创 运行时异常与一般异常有何异同
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。...
2020-05-24 12:05:46 91
原创 final, finally, finalize的区别
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型,finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用...
2020-05-24 12:03:25 81
原创 finally的执行顺序
public class smallT{ public static void main(String args[]) { smallT t = new smallT(); int b = t.get(); System.out.println(b); } public int get() { try { return 1 ; } finally { return 2 ; } }}返回的结果是2。我可以通过下面一个例子
2020-05-24 12:02:14 666
原创 return的执行顺序
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?return中间执行public class Test { /** * @param args add by zxx ,Dec 9, 2008 */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.printl
2020-05-24 11:58:37 573
原创 数组有没有length()这个方法?String有没有length()这个方法
数组没有length()这个方法,有length的属性。String有有length()这个方法。
2020-05-23 17:45:19 511
原创 如何把一段逗号分割的字符串转换成一个数组
如果不查jdk api,我很难写出来!我可以说说我的思路:1.用正则表达式,代码大概为:String [] result = orgStr.split(“,”);2.用 StingTokenizer ,代码为:StringTokenizer tokener = StringTokenizer(orgStr,”,”);String [] result = new String[tokener .0()];Int i=0;while(tokener.hasNext(){result[i++]=to
2020-05-23 17:44:22 515
原创 String Object 和new String 的区别
String s = new String(“xyz”);创建了几个String Object? 二者之间有什么区别?两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。...
2020-05-23 17:42:52 237
原创 原始的String对象中的内容变化
String s = “Hello”;s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 “Hello”,然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是
2020-05-23 17:39:47 255
原创 String 和StringBuffer的区别
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuf
2020-05-23 17:34:03 97
原创 String是最基本的数据类型吗
基本数据类型包括byte、int、char、long、float、double、boolean和short。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
2020-05-22 10:05:50 501
原创 super.getClass()方法调用
super.getClass()方法调用下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] args) {new Test().test();}public void test(){ System.out.println(super.getClass().getName());}}很奇怪,结果是Test这属于脑筋急转弯的题目,在一个qq
2020-05-22 10:02:46 172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人