• java 基本理论知识点


    通过JAVAOO 的笔试后,总结了一些理论的知识点。 

    1、main方法是怎么写的

           public static void main(String [] args){}//最习惯的

         public static void main(String  args[]){}

         static public void main (String [] args){}   

    2、变量的命名规则是怎么样的?   

           类名的定义:必须以大写开始,采用驼峰命名 

           方法名、属性名的定义:以小写开始,采用驼峰命

           常量:全部大写

    3、if…else…和写两个if 有什么区别

           两个if为两次选择判断.两条语句,都会执行

           if...else为一次判断,if为选择条件1,else为除去选择条件1之外的其他情况.,一条语句只会执行一次

    4、在JAVA中直接写浮点常数,默认是什么类型?

           默认类型为double型

    5、什么是标识符?它的命名规则是什么?

           标识符是可以命名的地方。标识分为用户标识符和系统标识符(关键字)

           命名可以只用数字,字母,下划线(_),美元符号($)作为变量名,且首字母不能为数字.

    6、什么是变量?

           命了名的内存空间,并且空间的值可以变化

    7、JDK与JRE分别是什么?

           JDK为Java开发工具包,包括编译环境,运行环境,调试环境和基础类库,JDK包含JRE

           JRE为Java运行环境,包括虚拟机,核心类库和链接文件

    8、try-catch-finally三个基本块的作用?catch里的代码是干什么的?

           try块进行异常捕获

           catch块对捕获的异常分别处理

           finally块在try_catch块执行完毕后再执行,进行清理和系统回收

           catch块的代码是进行异常捕获,显示异常信息和处理意见的

    9、继承类和实现接口分别怎么做?

           使用extends关键字继承类

           使用implements关键字实现接口

    10、如何去获得字符串的长度?

           调用字符串的length()方法获得字符串长度

         字符串有length()方法,数组有length属性。

    11、Java的基本数据类型有哪些?

           byte, short, int, long, float, double, char, boolean

        java的引用类型:类 接口 数组

    12、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,是值传递还是引用传递

           值传递

    13、列出至少5个最常见到的runtime exception并描述在什么情况下出现

           ClassNotFoundException 类无法找到

           IOException 输入输出异常

           FileNotFoundException 文件无法找到

           NonePointException 空指针异常

           SQLException 数据库链接异常

    14、ArrayList和Vector的区别

           ArrayList和Vector都是集合框架中的类,都实现了List接口,结构相似

           ArrayList为JDK1.2效率高,线程不安全

           Vector为JDK1.0效率低,线程安全

    15、在IO中字节流和字符流的父类是什么?

           字节流:InputStream/OutputStream

           字符流:Reader/Writer

    16、什么是包?定义包有什么好处?

           包就是文件夹。

           包定义了类的路径,用于区分相同名字的类和对不同类的归类,对类进行组织

           包可以用做信息的隐藏

    17、怎么样知道磁盘一个目录中有哪些文件?

           在当前目录创建File对象,调用list()方法获得所有文件和路径名

    18、如何获得一定范围的随机整数?

           使用random(随机数上限),调用其nextInt()方法获得整数随机数

    19、如何获得java当前的工作目录

           System.getProperty("user.dir")方法获得当前目录

    20、怎么样判断一个异常类是checked异常还是unchecked异常?

           是否是RuntimeException子类

    21、静态变量和成员变量应该怎么访问?

           静态变量使用类名. 直接访问。对象.静态变量

           成员变量需要先创建实例,使用对象名.属性

    22、如何将一个字符串转成一个基本数据类型

           调用Integer.parseInt(字符串)方法转换

    23、如何让JFrame的初始位置居中(在不同的分辨率中)

           调用JFrame的setLocationRelativeTo()方法,参数为null

    24、谈谈集合的作用

           存储,检索,操作,传输

    25、类的修饰符能不能是private、static、protected?

           可以使用。但这种类只能是内部类

           private为私有类,不能被外部访问

           protected为受保护类,只能同包类和非同包子类访问

           static为静态类,该类不需创建对象

    26、Try块中是否所有的语句都一定会执行,为什么?

           try块中的所有语句不一定会执行,当执行中遇到异常后,会中止try中其它语句的执行。即跳转到catch块中捕获异常

    27、什么时候用继承,什么时候用接口?

           继承是属性和方法的重用。接口只重用方法。

    28、finally是不是什么时候都会执行?

           try{

    int i=9/3;

    System.exit(0);

    }

    catch(){

     

    }

    finally{

     

    }

    29、什么是主线程?

           程序运行一开始的线程,通常为main方法所在的线程,主线程产生子线程并在所有线程结束后执行清理

    30、进行IO流操作时,如果操作的文件不存在会发生什么情况?

           读取流发生fileNotFound异常

           写入流会创建新文件

    31、IO流操作的步骤是怎么样的?

           创建流,操作流,关闭流

           创建目录对象,在目录对象上建立IO流,传输数据后IO流关闭

    32、finally的作用是什么?

           在异常捕获try_catch结束后执行相关清理.

    34、当一个线程进入一个对象的一个同步方法后,能否进入其它非同步方法? 么?一般在什么时候使用?

           可以。

     33、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?

           会执行,在return之前执行

    35、如何启动线程,它直接调用run()方法有什么区别?

           调用start()方法产生子线程,直接调用run方法不产生子线程,而是常规的对象方法调用.

    36、数组有没有length()这个方法? String有没有length()这个方法?

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

    37、GC是什么? 为什么要有GC?

           垃圾回收,提醒垃圾回收器执行垃圾回收工作

    38、线程同步化会带什么样的结果?

           保证被操作的数据源安全,但降低了程序的效率

    39、什么是线程安全?

           线程安全即是线程同步,在同时访问数据时通过同步保证数据的正确性

    40、服务器类有一个while循环,能否直接while(true)?

           不能,服务器不能关闭.只能直接结束主线程.

    41、java帮助文档是如何生成的?

           通过在程序中添加文档注释,在eclipse中使用"导出"功能生成帮助文档

    42、什么时候类名和文件名必须一致?

           当类的访问修饰符为public

    43、如何将实现包装类和基本数据类型转化?

           使用构造方法由基本数据类型转化包装类,调用包装类的方法转化成基本类型

    44、类InputStream中方法read()的返回值是什么?读出的是什么?

           返回值为整型,读取的单个字符的byte值

    45、如果一个类实现一个接口,可不可以不实现接口里定义的所有方法?

           可以 。但这个类只能是抽象类

    46、构造方法和方法有什么区别?构造方法能不能被重载,能不能被重写?

           构造方法是产生对象时使用的方法,只能被重载,不能被重写

    47、请列举switch( )括号中能接受的所有数据类型。

           byte short int char

         在JDK7.0的版本中还可以是String

    48、GUI的布局管理器常见的有哪几种?

           绝对布局,卡片布局,BorderLayout ,GridLayout,FlowLayout

    49、断点有什么作用?

           调适模式时当运行到断点则程序停止.查看到当时变量和对象

    50、String和StringBuffer的区别?

           String保存在静态区,长度不可改变,StringBuffer保存在堆中,长度可以改变

    51、接口里方法修符是什么?

           public 或 不写,均代表公共的

    52、接口里可以定义变量吗?    

           不能.只能定义静态常量

    53、说几个String常用的方法

           length(),substring(),indexOf(), trim()

    54、在Dos界面下如何编译并执行Java程序?

           使用javac+文件名命令进行编译,然后执行java+类名命令运行

    55、创建一个线程有几种方法?

           继承Thread类或实现runnable接口

    56、项目开发的流程是怎么样的?

           需求分析,概要设计,具体设计,编码,程序测试,,部署

    57、java语言的特点是什么?

           面向对象,跨平台性 ,安全性,垃圾回收

    58、main方法中有个参数String[] args。这个参数的值是由谁传递给它的。

           java Test aaa

    59、java中采用什么字符编码集?char类型能不能放入一个中文字?

           UNICODE 一个字符两个字节  可以

    60、byte的取值范围

           -128——127

    61、throw和throws的区别

           throw在程序中申明抛出异常,是一条语句

           throws方法修饰符。在方法声明上声明将要抛出的异常

    62、子类继承父类时,在子类构造方法的第一行语句应该怎么写?

           super()

    63、注释分为几种?你是如何使用的。

           文档注释,单行注释,多行注释,在方法名和属性使用文档注释,在语句中使用单行注释或多行注释

    64、一个子类能同时继承于多个父类吗?

           不能

    65、局部变量使用时候需要注意什么问题?

           局部变量的作用域,初始化,修饰符只能是final或不写

    66、引用数据类型作为参数传递时,传递的是什么?

           传递的是保存的内存地址

    67、基本数据类型和引用数据类型的区别是什么?

           基本数据类型中保存的是实际的值,引用数据类型保存的是被引用的内存地址

    68、什么样的类不能被实例化?Math这个类能不能实例化?

           抽像类,不能,因为Math构造方法私有

    69、是否可以继承String类?

           不能,String是终态类

    70、谈谈算术表达式的优先级

           .();

           一元运算符++  --- (类型)

           算术运算符+-*/

           比较运算符><

           位运算符 ^|&

           逻辑运算符&& ||

           赋值

    71、如何定义一个常量?定义常量的意义何在?

           final关键字,常量可以避免使用数字造成意思不明确,可以在代码中做到只需修改一处即可改变常量

    72、final这个修饰符的用法?

           final在修饰变量时为常量,在修饰方法时不能被重写,在修饰类时不能被继承

    73、集合和数组的区别。

           集合中可以放不同类型的对象,集合中结构多样,可以无序也可以有序.长度可以改变

           数组为有序且内存地址连续,只能保存同一种数据,长度不能改变

    74、JVM是什么?它的作用是什么?它和java运行环境有什么区别?

           java虚拟机,类加载,字节码校验,解析器,交给OS执行

           JRE包括JVM,还包括核心类库,jvm,链接文件

    75、GUI响应一个事件的代码如何写?

           1、确定事件源

           2、确定监听器,实现ActionListener

        3、注册

    76、实现接口使用什么关键字?在实现一个接口时必须要做什么?

           implements,必须实现接口的所有抽象方法

    77、如果要抛出异常怎么做?

           throw 异常对象

    78、如果try块中有多种异常,在catch块中如何处理?

           使用多个catch块分别处理多个异常

    79、为什么从集合中取出来的元素都是Object类型的?

           集合中可以保存多种类型的对象,所以当从集合中抽取出的对象虚拟机并不能识别是什么类型.所以向上转型为Object类

    81、HashMap等是实现的 Collection的接口吗?

           不是.实现的map接口

    82、Collection与Collections的区别?

           Collection是集合接口,Collections是集合的算法类

    83、String是基本数据类型吗?基本数据类型有哪些?

           不是.byte short int long float double char boolean

    84、异常捕获的流程?如果有异常发生是怎样的流程?

           try块中执行代码,当触发异常后转换到catch块.执行完catch块后,无论是否有异常都会执行finally块

    85、输入输出流分几种?分别在什么时候使用?

           字符流,字节流,对象流,字符流在字符文件传出时,对象流在传输对象时使用

    86、Error和Exception的区别是什么?

           Error是系统错误信息,可以捕获,但无法处理

           Exception是异常,可以通过异常捕获在程序中捕获,也可以处理

    87, 面向对象的特征

           继承 封装 多态

    88、什么是构造方法?构造方法的作用?(目的、意义)

           构造方法是类产生对象的方法

           为对象分配空间,判断类是否加载,否则加载类,初始化成员变量,返回对象地址

    89、this、super的用法与区别?

           this为当前类,super为父类

    90、子类中怎么调用父类的方法?

           使用super.方法

    91、子类继承父类,父类的构造方法能被继承吗?

           不会

    92、讲一下多态的概念。

           相同的行为,不同的表现

           允许用父类变量指向子类的实例,允许用接口变量指向实现类实例

         重写是实现运行时多态性的手段

         重载是实现编译时多态性的手段

         封装、继承和多态是面向对象编程的重要支柱

     93、对象的序列化怎么实现的?   

           被序列化的对象先实现Serializable接口,然后使用输出流将对象转化为二进制输出

    94、访问修饰符有哪几种?它们之间的区别是什么?

           public 公共的,所有的类都可以访问(本类,同一包中的不同类,不同包,子类)

           protected 受保护的,同包的不同类,子类,本类

           dufault 默认的,同包的类可以访问 本类

           private 私有的,其他类不可访问

    95、静态变量与成员变量的区别。

           静态变量在类加载时产生,所有对象使用的静态变量均为同一的变量,放在数据段中

           成员变量需在产生对象后初始化产生,放在堆中

    96、对对象进行比较怎么做?为什么不用“==”?

           equals方法,==是比较对象内存地址的值

         equals比较内容

    97、什么时候用继承Thread?什么时候实现Runnable接口?

           当只有一个类继承时使用继承Thread,当已经继承了其他类,同时要实现多线程则使用Runnable接口

    98、Map、list与set的区别?里面常用的类有哪些?

           Map是按照键值对的方式保存,主要有HashMap,HashTable,TreeMap

           List是按照顺序存放,主要有ArrayList,LinkedList,Vector

           set是不按照顺序存放,主要有HashSet,TreeSet

    99、举出常用的list类。哪种情况用哪种好?

           ArrayList:按照顺序,在末尾插入或需要遍历时使用

           LinkedList:链表结构,在中间或前端插入数据使用

    100, 创建新对象的方式

          反射  克隆  构造方法 new 反序列化

    101、什么时候用输入流,什么时候用输出流?

           对于内存输入则使用输入流,从内存输出则使用输出流

    102、写一个数组的创建。

           String [] str = new String [5]

    103、重写与重载的区别?参数一样,返回类型不一样 是重载吗?

           重写:父类和子类之间,访问修饰符大于等于父类,返回类型相同,方法名和参数列表相同

           重载:在同一个类中,访问修饰符可不相同,返回类型可不相同,方法名相同,参数列表不同

           不是

    104、final与finally、finalize的区别?

           final修饰变量为常量,修饰方法不可重写,修饰类为终态类

           finally在异常捕获的最后执行清理工作

           finalize为系统清理垃圾的方法

    105、int与Integer的区别?

           int为基本数据类型,Integer为包装类

    106、集合里的接口有哪些?请你创建一个List类的实例。

           Collection,List,Set,Map

           List list = new ArrayList()

    107、变量按作用域分类分为几种?

           局部变量,成员变量,静态变量

    108、Java的引用数据类型有哪些?

           对象  数组 接口

    109、Java程序的执行过程是怎样的?

           编写源文件*.java  将源文件编译成*.class(javac)

       类加载   字节码校验     解释器    OS

    110、启动线程时可以调用run()方法吗?

           不可以

    111、解释一下在项目里你怎么去实现多线程的。

           写子线程类,产生子线程类对象,调用start()

    112、面向对象的特征有哪些?

           继承,封装,多态

    113、谈谈线程所拥有的几种状态

           新建,就绪,运行,结束,休眠,挂起,阻塞,等待

    114、java安全性体现在什么地方?

           垃圾回收机制   异常处理

    115、谈集合遍历的方式

           使用Iterator遍历,使用for-each结构(JDK1.5) for 循环(List)

    116、定义抽象方法的意义何在?

           当子类继承父类后必须重写抽象方法,对子类行为的规范和同一

    117、你是怎么使用静态变量和成员变量的?

           静态变量:共享 统一,当类中对象都有属性,但值不同,使用成员变量,

    118、transient是什么意思?

           当序列化时不序列化,该属性的值不做传输。该关键词修饰的属性

    119、传输层协议TCP和UDP说法

           TCP协议是一种可靠的网络通信协议。

           TCP协议可以进行拥塞控制和流量控制。

           UDP协议是一种不可靠的网络通信协议。

    120、什么是反射?

           在编译时并不知道应该加载哪个类,类的加载是运行时进行的。反射具有对类本身信息进行探知和自审的功能。

    120、用接口有什么好处?

           达到系统的分离,提高系统的灵活性,使用接口规定公共的行为

    121、抽象方法能不能是private和static修饰符?

           不能.使用 abstract 

    122、Java基础技能中强调程序代码的读写能力,如果一个类很长,你会怎样读写?

           分离  分离方法  分离类

    123、线程和进程的区别是什么?

           系统中程序的运行对应一个进程,每个进程都会消耗内存。一个进程包括多个线程

    124、为什么实现一个接口必须要实现接口里面所有的方法?

           因为在使用接口调实现类方法时,必须要确保该方法已经有实现。

    125、awt和swing的区别?

           awt调用的是OS中的样式,均有的组件才能使用

           swing使用自身组件,不调用系统组件

    126、Class 和class的区别

           Class是类模板类,class为关键字

    127、在线程中wait与sleep的区别?

           wait在同步中使用,为Object类的方法自动释放锁,且需要其他程序调用notify唤醒

           sleep任何地方使用,为Thread类的方法,不会释放锁,休眠一定时间后自动唤醒

    128、什么是封装?封装的好处是什么?

           封装是将对象所具有的属性和方法作为一个整体,封装第一是信息的集合。第二信息的隐藏

    130、什么是线程同步?

           当两个以上的线程访问同一个资源时,为了保护资源,避免数据混乱,   

    对象在同一时间只能被一个线程访问,等该线程释放锁后其他线程才能访问

    131、static和非static修饰的变量哪个生命周期长?

           static修饰的变量

    132、java的环境变量如何配置?为什么要配置?

           将系统环境变量中田间JAVA_HOME的键,同时将其bin目录的全路径添加到path中

           配置环境是为了在任何目录下都能使用JDK的编译和运行环境

    133、演示java项目如何打包成jar文件

           使用eclipse中导出功能.

    134、private变量能不能被其他类访问?如果能,怎么访问?

           可以,使用反射或为该类提供set/get方法

    135、java为什么能够跨平台?

           java的代码运行是在虚拟机中解释运行的,不同的OS有针对于该OS编写的虚拟机

    136、System.out和System.in是什么意思?

           系统标准输入和输出。标准的含义是利用标准的外设,键盘、鼠标、显示器,作为输入输出的设置

    137、谈谈&&和&的区别

           &&逻辑与.为逻辑判断符号 短路

           &位运算符号,相同的位保存为该相同数值,不同则为0

    138、你的程序遇到错时怎么解决的?

           查看错误描述和行数,分析错误原因.使用断点调试

    140、什么是泛型?它有什么样的好处?

           对与集合指定其类型,规定了集合中只能存放的类型.在集合中取出的对象不需由Object类强转

    141、说一下iterator。

           迭代器,Iterator作为指针的工作原理,在集合中的元素之间进行跳动达到遍历集合的作用

    143、谈谈HashMap与Hashtable的区别。

           HashMap为JDK1.2,允许空键和空值,线程不安全,效率高

           Hashtable为JDK1.0,不允许空键和空值,线程安全,效率低

    144、什么是对象序列化,为什么要使用?

           对象序列化是将对象以二进制方式传输对象,流都是字节方式传输,传输对象之前必须将对象打散成字节序列以利用传输。

    145、异常框架的类结构?

           Throwable类下分为error类和exception类

    146、多线程的优先级?为什么要分优先级?

    1-10 数字越大优先级越高

           优先级可增大对系统资源的获得概率

    147、什么是异常?描述下异常处理?

           异常是描述错误信息的对象,通过try_catch捕获异常处理异常

    148、谈谈集合框架?

           集合框架包含:1、接口  2、实现类   3、算法(Collections   iterator)

     

    149、谈谈你对面向对象的理解与认识?

           使用面向对象的方式开发可以做到组件式的开发,对于不同的对象使用封装,对程序进行模块化的设计

    150、项目中印象最深的部分?

           需求分析

    151、方法重载的好处?

           实现好的兼容性,同一方法可完成不同情况下的行为

    152、谈谈继承,为什么要使用继承?

           继承使子类拥有父类的属性和方法,简化代码提高代码的重用

    153、接口与抽象类的区别?

           接口关键字interface,只能由静态常量,抽象方法,无构造方法,可以多重实现

           抽象类关键字abstract,可以有实现方法和抽象方法,静态常量和属性,有构造方法,不能产生对象,只能单根继承

    154、值传递与引用传递的区别?

           值传递为实际保存的数值,引用传递传递的是保存在其中的内存地址

    155、说说项目工作流程。

           需求分析-概要设计-详细设计-代码编写-程序测试-程序上线

    156、说说工厂模式

           工厂模式是指将需要创建对象所做的初始化工作封装成类,外部直接调用该工厂类产生对象(接口对象),将类信息放在文件中,增加代码灵活性。

    157、什么是单例模式

           确保该类的对象只有一个,为的是减少内存消耗,提高效率

           类中提供静态方法判断是否产生类,并返回该类,构造方法为private

    158、说说socket开发的流程

           创建serverSocket,开放端口,调用其accept方法等待客户端联接

    159、关键字synchronized

           保证任何时候只有一个线程访问一个方法或对象

    160、socket和serverSocket的区别。

           socket为客户端请求的数据对象,ServerSocket为服务器端接收数据对象

    161、PreparedStatement和Statement的区别

           statement只能直接编译写好的sql语句,不同的sql语句需要重新编译

           preparedStatement预便于sql,对值的部分使用问号代替,不同的值只需编译一次

    162、什么格式良好的XML,什么是有效的XML

           良好是结构符合标记成对出现,标记意思明确,有效是指满足DTD约束

    163、解析XML的方式主要有哪些?各自有什么优缺点

           DOM:将文档全部读取到内存,方便操作,消耗资源

           SAX:通过事件回调模式解析,按需求读取,效率高,对XML结构不直观

    164 垃圾回收

        垃圾回收是一个后台线程

        程序员不能干预垃圾回收

        垃圾回收只能回收堆上的内存,无法释放外部资源(如打开的文件)

        调用System类的gc方法不能确保垃圾回收器回收内存

    166 如何实例化Class对象

         通过forName()方法...

         对象.getClass();

         类.class;

    多多补充哦!谢谢!

  • 相关阅读:
    对于字符串的重复字符的去除
    487-3279
    队列设计(转)
    动态创建JS
    前端技巧:禁止浏览器static files缓存篇(转)
    cas与NGINX整合(转)
    秒杀场景下MySQL的低效(转)
    html禁用缓存
    MD5随机盐值生成法
    SVN There are unfinished transactions detected
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/4491808.html
Copyright © 2020-2023  润新知