`
duyouhua1214
  • 浏览: 237983 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java细节总结

    博客分类:
  • Java
阅读更多

TURE、FALSE、NULL等都不是Java关键字;

数组的排序:Array.Sort(数组名)
数组的拷贝:System.arraycopy(Object src, int?srcPos, Object?dest, int?destPos, int?length)
Java语言总是使用传值调用,这意味着方法得到的只是所有参数值的拷贝, 因此,方法不能修改传递给它的任何参数变量的内容。
 对象类型的参数传递的也是该对象的引用值
    方法中并不能改变对象变量,但能通过该变量调用对象的方法或修改对象的成员。
方法的参数基本上与局部变量相同,但你不需要直接初始化它
    编译器会确保方法调用时会有与声明相符的参数传进来,且参数会自动被赋值
注意点:重载不仅出现在同一个类中,也可以出现在父子类中。

     (2)对于实例常量的赋值有两次机会
         在初始化的时候通过声明赋值
         在构造的时候(构造方法里)赋值
         注:不能在声明时赋值一次,在构造时再赋值一次。
         注意:当final修饰实例变量时,实例变量不会自动初始化为0;但必须给他赋值才能通过编译。

abstract 永远不会和 private,static,final 同时出现。( 因为抽象必须被继承。)
接口是一种特殊的抽象类。
在一个接口中,所有的方法为公开、抽象的方法,所有的属性都是公开、静态、常量。
一个类实现一个接口必须实现接口中所有方法。
一个类实现一个抽象类可以实现抽象类中部分方法。
一个抽象类实现一个接口可以不实现接口中的方法。
接口不能继承抽象类。
接口与接口之间可以多继承


接口 VS 抽象类
    1、接口中不能有具体的实现,但抽象类可以。
    2、一个类要实现一个接口必须实现其里面所有的方法,而抽象类不必。
    3、通过接口可以实现多继承,而抽象类做不到。
    4、接口不能有构造方法,而抽象类可以。
    5、实体类与接口之间只有实现关系,而实体类与抽象类只有继承关系
      抽象类与接口之间既有实现关系又有继承关系。
    6、接口中的方法默认都是公开抽象方法,属性默认都是公开静态常量,而抽象类不是。

集合的排序:Collections.sort()
在java中指定排序规则的方式只有两种:1、实现java.util包下的Comparator接口
                                    2、实现java.lang包下的Comparable接口

Comparator与Comparable的区别:
相同点:Comparator和Comparable都是接口,都支持泛型。
不同点:Comparator一般是用于自定义比较器,完成集合外部对象的排序。
        Comparable一般用于集合内部排序时,类实现此接口,完成集合内部对象的排序。

集合:
List:有序有重复,实现类ArrayList、LinkedList、Vector
Set:无序无重复,实现类HashSet
                继承接口:SortedSet 实现类TreeSet

Map:与键值对的形式存储,实现类HashMap
                继承接口:SortedMap 实现类TreeMap
Iterable与Iterator的区别:
相同点:Iterable和Iterator都是接口,都支持泛型。
不同点:Iterable表示可迭代的,Iterator表是迭代器。并且Iterator继承了Iterable接口。
ArrayList与LinkedList集合:
ArrayList底层是Object数组,所以查询快,增删慢。
LinkedList底层是双向链表, 所以查询慢,增删快。


线程:
线程的七种状态:初始New,可运行Runnable,运行Running,阻塞Blocked,锁池Lock_pool,等待池Wait_pool、结束Dead。
wait()线程会释放对象锁。
sleep()不会释放对象锁。

异常:

 Throwable 有两个子类:Error 和Exception。

  Error:一般是底层的不可恢复的错误。
           Object
             ↑
          Throwable
             ↑
        ┌---------┐
     Error      Exception
                   ↑                非RuntimeException
           ┌-----------------------┬---------------┐
        RuntimeException   InterruptedException  IOException
              ↑
        ┌----------------------┬-----------...
   NullpointerException  ArrayIndexOutOfBoundsException
Exception分类:
            Runtime exception(未检查异常)--------------->程序员可避免
                   ①java.lang.ArithmeticException           //如:分母为0;
                   ②java.lang.NullPointerException          //如:空指针操作;
                   ③java.lang.ArrayIndexoutofBoundsExceptio //如:数组越界;数组没有这元素;
                   ④java.lang.ClassCastException            //如:类型转换异常;
            非Runtime exception(已检查异常) ---------->程序员不可避免

 

 Error与Exception有什么区别:

  Error表示系统级的错误和程序不必处理的异常,

  Exception表示需要捕捉或者需要程序进行处理的异常。


heap(堆)和stack(栈)有什么区别。

  栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

  堆是栈的一个组成元素(栈由多个堆组成)


谈谈final, finally, finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

  finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

&和&&的区别:&是位运算符。&&是布尔逻辑运算符

HashMap和Hashtable的区别。

  都属于Map接口的类,实现了将惟一键映射到特定的值上。

  HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

  Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

Collection 和 Collections的区别。

  Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

  Collection是个java.util下的接口,它是各种集合结构的父接口。

数组length属性,String有length()方法。

Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

给我一个你最常见到的runtime exception。

  ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

  ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException


error和exception有什么区别:

/////////////////////////////////////////////////////////////////////////
1.abstract method必须以分号结尾,且不带花括号。
2.局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量。
3.final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable。
4.abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。
5.在方法的参数传递中,如果参数用final来修饰,则此参数的值在方法内部不能被修改。
   public int addOne(final int x) {
    return ++x;
   }
  但此参数是引用对象,则可以修改此对象中属性的值。
6.final修饰的变量必须要赋值,且只能赋值一次,要么在定义是赋值,要么在构造器中赋值。
7.static method不能访问non-static instant variable和non-static method。
8.从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。
////////////////////////////////////////////////////////////////////////////////
怎样进行对象持久化?(仅从JAVA方面讲)
      1) 对象序列化
      2) DB技术(JDBC 数据库)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


String装换int有三中方法,分别如下:
1、Integer.parseInt(str)
2、new Integer(str).intValue()
3、Integer.valueOf(str).intvalue()

int装换String有三中方法,分别如下:
1、n+"";
2、new Integer(n).toString();
3、Integer.valueOf(n).toString();
4、Integer.toString(n); 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

回文数:就是对称的一个整数,如:12321,1221。
"水仙花数"是指其各位数字立方和等于该数本身,153=1^3+5^3+3^3。

最大公约数.........................?,最小公倍数等于两个数的乘积除以最大公约数。

一个数如果恰好等于它的因子之和,这个数就称为 "完数,例如6=1+2+3。

分享到:
评论

相关推荐

    java细节总结 非常适合初学者学习

    - 封装:隐藏实现细节,只暴露公共接口。 - 多态:同一种行为可以通过不同方式表现,如方法重写。 - 抽象:不关注具体实现,只关注接口。 - 范型:泛型提供类型安全,避免了类型转换的麻烦。 3. **常用包**: ...

    java 技术总结.--java 技术

    这篇“Java技术总结”将深入探讨Java的核心概念、语法特性、开发工具以及相关框架,旨在为学习者提供一个全面且深入的Java知识体系。 一、Java语言基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被...

    JAVA年度总结模板

    - **技术细节**:适当提及实现过程中的技术细节,如使用的编程语言(例如Java)、开发框架、数据库管理系统等。 ### 5. 工作态度与职业素养 - **积极态度**:表现出积极向上的工作态度,即使面对困难也能保持乐观...

    java面试总结文档

    ### Java面试总结文档知识点解析 #### 一、Java基础篇 - 概念 ##### 1. Linux概述 - **起源与发展**:Linux是由芬兰学生Linus Torvalds于1991年开始创建的一个开源操作系统内核。随着社区的不断发展与完善,Linux...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    java代码细节总结1.0版本.zip

    本资料“java代码细节总结1.0版本.zip”是针对Java编程的一些关键知识点和最佳实践的详细概述,旨在帮助开发者提升代码质量和效率。以下是根据提供的文件名“java代码细节总结1.0版本.md”可能涵盖的一些核心Java...

    java 一些细节知识

    在这个"java一些细节知识"的压缩包中,包含了一份名为"java test.doc"的文档,我们可以期待它涵盖了作者个人测试后总结的Java关键知识点。以下是对这些可能包含的内容的详细解释: 1. **变量与数据类型**:Java支持...

    java基础总结大全(笔记).pdf

    Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...

    java视频学习总结

    ### Java视频学习总结知识点 #### 抽象方法与抽象类 在Java中,抽象方法是一种没有具体实现(方法体)的方法,它仅提供方法签名,而具体的实现留给子类完成。一个类如果包含一个或多个抽象方法,那么这个类必须被...

    Java代码优化细节总结

    代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么...但是如果有足够的时间开发、维护代码,这时候必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率是有提升的。

    java 基础知识总结(经典)

    这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...

    JAVA基础阶段总结

    ### JAVA基础阶段总结 #### 一、JAVA简介与特点 **JAVA** 是一种高级编程语言,它被设计用于编写能够跨平台运行的应用程序。由 Sun Microsystems 公司于1995年推出,并在2010年被 Oracle 公司收购。JAVA 技术以其...

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    Java技术文章总结

    Java技术文章总结,涵盖了许多Java开发中的核心概念和实践技巧,是学习和提升Java技能的重要资源。以下是对这些文章主题的详细解读: 1. **Java基础** - 类与对象:Java是一种面向对象的语言,理解类和对象的概念...

    java代码细节总结1.0版本.7z

    **Java代码细节总结1.0版本** 在编程领域,Java是一种广泛应用的面向对象的编程语言,以其健壮性、安全性和跨平台性而备受青睐。本总结主要关注Java编程中的关键细节,帮助开发者深入理解并优化其代码。 1. **基础...

    Java基础总结.pdf

    封装是通过类将对象的状态和行为封装起来,并对外隐藏实现细节,使用者只能通过公共接口访问对象。继承允许一个类(子类)继承另一个类(父类)的属性和方法,以此来实现代码的复用和类层次的构建。多态则是指同一个...

    java代码优化细节总结1.0版本.zip

    以下是对`java代码优化细节总结1.0版本`的一些核心知识点的阐述: 1. **避免冗余计算**:在Java编程中,如果一个值在多处被使用,应当将其存储在变量中,避免重复计算,提升执行速度。 2. **减少对象创建**:频繁...

    Java.xmind Java全面总结思维导图

    本资源含有百分之八十的Java技术总结,内容丰富,细节到位,适合Java初学者以及Java学习过半者,总结清晰明了,有很好的构建知识网络作用

    java语言要点总结

    ### Java语言要点总结 #### 一、Java中的对象操纵与引用 Java作为一种面向对象的编程语言,其核心特性之一就是对象的操纵与管理。在Java中,一切都是对象,包括基本数据类型也被包装成了对象的形式。Java通过引用...

Global site tag (gtag.js) - Google Analytics