[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 ​ 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定要不要继续此次面试,如果答的不好,有些公司可能会直接说“技术经理或者总监在忙,你先回去等通知吧”,有些公司可能会继续面试,了解下你的项目经验等情况. ​ 至少在工作的前5年甚至更久,面试一般不会跳过笔试题这个环节(大牛,个别公司除外),…
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一章-初识java JAVA基础第二章-java三大特性:封装.继承.多态 JAVA基础第三章-类与对象.抽象类.接口  JAVA基础第四章-集合框架Collection篇 在上一章节中,我们讲了集合框架的Collection部分,下面我们来讲一下Map接口 我们再看一下集合框架的结构图 map接口的…
文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 ​ 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定要不要继续此次面试,如果答的不好,有些公司可能会直接说"技术经理或者总监在忙,你先回去等通知吧",有些公司可能会继续面试,了解下你的项目经验等情况. ​ 至少在工作的前5年甚至更久,面试一般不会跳过笔试题这个环节(大牛,个别公司除外),我自己也记不清自己面试过多少家公司,做过多少份面试题了…
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时,不能指定其长度.不同于C 数组的小标可以是整型常量或整型表达式. .length方法是显示数组的长度:数组.length;String.length();一个是属性,一个是方法.注意区分. 2.数组的内存分析? Array a[]; a = new Integer(15); /*这个a在栈中,在堆…
继前面的,这篇主要记录菜单和文件对话框的两个小练习,来熟悉一下方法的应用,一些简单的逻辑和Swing的相关简介,以及关于GUI基础的记录. 一.创建一个菜单 import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.…
1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( ). A.java B.class C.html D.exe 答案: B 解析: Java源程序的后缀名为".java",经过编译之后生成的字节码文件后缀名为".class" 2. 问以下哪个说法是正确的?() A 派生出子类 B, B 派生出子类 C,并且在 java 源代码有如下声明: A a0=new A(); A a1=new B(); A a2=new…
一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类.因为类java.lang.Thread实际上也是实现了接口java.lang.Runnable的类,所以上面两种构造线程类的方法从本质上都是构造实现接口java.lang.Runnable的类.下面将具体介绍着两种方法. (1)通过类Thread的子类构造线程 类java.lang.Thread的每…
一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的…
IO SequenceInputStream,允许链接多个InputStream对象.在操作上该类从第一个InputStream对象进行读取,知道读取完全部内容,然后切换到第二个InputStream 知道最后一个InputStream对象的末尾文职.到达每个文件末尾是,与之关联的流就会被关闭. ObjectOutput接口,支持对象序列化.ObjectOutputStream实现了ObjectOutput接口,负责将对象写入流中. ObjectInput接口,支持对象串行化.ObjectInp…
封装(好比ATM机) 将类的某些信息隐藏在类内部,不允许外部程序直接访问(隐藏对象的信息),通过该类提供的方法来实现对隐藏信息的操作和访问(留出访问的接口). 特点: 1.只能通过规定的方法访问数据. 2.隐藏类的实例细节,方便修改和实现. 实现步骤: 1.修改属性的可见性——设为private. 2.创建getter/setter方法——设为public,用于属性的读写(只读属性(无法修改)/只写属性(无法获取)). 3.在getter/setter方法中加入属性控制语句——对属性值的合法性进…
文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 第一篇链接:[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 1.JDK,JRE,JVM三者之间的联系和区别 你是否考虑过我们写的xxx.java文件被谁编译,又被谁执行,又为什么能够跨平台运行? 1.1基本概念 JVM:Java Virtual Machine,Java虚拟机. JVM并不能识别我们平时写的xxx.java文件,只能识别xxx.class文件,它能够将class文件中的字节码指令进行识别并调用操作系统上的API…
在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称为输出流. 输入流的指向称为源,程序从指向源的输入流中读取数据. 输出流的指向是字节要去的目的地,程序通过向输出流中写入数据把信息传递到目的地. 输入输出流一般分为字节输入流.字节输出流.字符输入流和字符输出流. 这些字节序列的来源地和目的地可以是文件.网络连接甚至是内存块. 抽象类InputStream和OutputStream构成了输入/输出类层次结构的基础. 1.字节输入流InputStr…
本次我们来聊一聊Java当中的循环语句. 循环语句分三种:1.for2.while3.do--while. 三种循环语句的任务是不同的,方法也是不同的.当然他们各自的流程图也是不一样的. 3.1 while 语句 while的语法形式如下: while (表达式){ 语句块: } 3.2 do-while 语句 do-while 语句会先执行循环体再判断条件表达式,其语法形式如下: do{ 语句块: }while(条件表达式); 注:先做后判断 3.3 for 语句 for语句适合于语句块重复执…
一.方法 1.什么是方法? 对于功能相同的代码段,为了简化代码,会把功能相同的代码抽取出来,方便多次使用,Java中,我们使用[方法],也被称为函数 2.函数的声明 语法: 访问权限修饰符 其他修饰符 返回值类型 函数名称(参数列表){ //函数体 } public static void main(String[] args) { } a.访问权限修饰符:目前全部要求使用public,和main函数保持一致 b.其他的修饰符:只有static(要么写,要不不写) c.返回值类型:函数运行后所得…
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等.那么,想实现字符串与基本数据之间转换怎么办呢?Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:java将基本数据类型值封装成了对象.封装成对象有什么好处?可以提供更多…
抽象类(Abstract Class) 是一种模版模式.抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展.通过抽象类,可以避免子类设计的随意性.通过抽象类,我们就可以做到严格限制子类的设计(子类必须实现抽象方法)  ,使子类之间更加通用. 要点: 1.有抽象方法的类只能定义为抽象类. 2.抽象类不能实例化,不能用new来实例化抽象类,即不能用来创建对象. 3.抽象类可以包含属性.方法.构造方法.但是构造方法不能用来new实例,只能用来被子类调用. 4.抽象类只能用来继承. 5…
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 泥瓦匠初次遇见 navicat 是在 java.lang.Object 源码中的一个hashCode方法: ? 1 public native int hashCode(); 为什么有个navicat呢?这是我所要学习的地方.所以今天泥瓦匠想要总结下navicat. 一.认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯.比如解决某一个方案都喜欢就单…
创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子类的实例,即创建了线程对象. 3.调用线程对象的start方法来启动该线程. 二.通过Runnable接口来创建线程类 1.定义Runnable接口的实现类,并重写run方法,跟Thread一样,该run方法又叫做执行体. 2.创建实现类的实例,并依此实例作为Thread的target来创建Thre…
对象的序列化与反序列化: 对象的序列化,就是将Object转换成byte序列,反之叫对象的反序列化. 序列化流(ObjectOutInputStream),是过滤流 -------writeObject 反序列化流(ObjectInputStream)-----raedObject 序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则出现异常 这个接口,没有任何方法,只是一个标准. 案例描述:Student,将它序列化到文件中,再反序列化读出. Student类:…
21.构造方法(续):分类: 隐式构造方法:如果在一个类中,没有手动编写构造方法,则系统会提供一个默认的无参的构造方法 显式构造方法:如果在一个类中,手动编写构造方法,则系统不会提供默认的无参的构造方法 建议:当手动编写构造方法时,建议先编写无参构造方法22.引用数据类型 String 用户自定义类型,如:Teacher.Student 注意:引用数据类型赋值两种方式:赋值对象,赋值为null 小知识点:当一个对象作为另一个对象的属性或者当一个对象中的属性是引用数据类型23.空指针异常 java…
一.构造函数的规则 1.构造方法是用来在对象实例化时初始化对象的成员变量的,以完成对象的初始化工作. 2.构造方法与类名相同且没有返回值(返回值也不能为void型).如:public 构造方法名( ) { } 3.构造方法和new一起操作,在对象实例化时被系统自动调用,且只运行一次,不能被对象直接调用. 4.当没有自定义构造方法时,系统会自动添加无参的构造方法. 5.当有自定义构造方法,无论是有参.无参的构造方法,系统都不会再自动添加无参的构造方法. 6.构造方法不能被继承,因此,它不能被重写,…
1.JAVA多线程实现方式 (1)继承Thread类,并重写run()方法 (2)实现Runnable接口,,实现run()方法 (3)使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的. 2.java中的数据类型分类: 基本数据类型(或叫做原生类.内置类型)8种: 整数:byte,short,int,long(默认是int类型) 浮点类型: float,double(默认是double类型…
一.String类 1.创建字符串对象 创建字符串对象有两种方法:直接用“=”或者使用“new String(...)” String aStr = "TMZ"; String bStr = new String("TMZ"); String nullStr = ""; String nullStr_1 = new String(); String nullStr_2 = new String(""); 2.连接字符串 使用“…
”https://www.runoob.com/java/java-data-structures.html” 成员方法:是类中自己定义的方法. 构造方法:要和自己类中类名相同. 不论是构造函数还是成员方法,子类想引用父类的构造函数和成员方法时都要使用super关键字,但当子类不管有没有参数的构造函数里没有super关键字时(同时父类拥有无参的构造函数),java会自动调用父类的无参构造函数(自动调用只应用于调用构造函数,不会调用父类成员方法). 子类从父类重写的方法中可以用super关键字来调…
  编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用类体来描述所抽象出的属性 行为,类声明后的一对大括号{ ....... }以及他们之间的内容称作类体 变量的声明:依赖存储属性的值(体现对象的属性) 方法的定义:方法可以对类中声明的变量进行操作即给出算法: 成员变量 成员变量类型:整型,浮点型,字符型,逻辑类型,引用类型:数组类型,对象,接口 成员…
1.概述 对于Java程序员来说,到目前为止出现次数最多的应该是NullpointException,它是导致Java应用程序失败的最常见原因.之前处理空指针我们必须先通过条件先去判断,然后再确认是否有null值.但是在Java8中,我们可以使用Optional类来解决null值判断问题,其借鉴Google Guava项目的Optional类而引入的一个同名Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码.使用Optional类可以避免显式的null…
高级特性:内部类.抽象类 内部类(Inner Class),有时也称为嵌套类(Nested Class) 允许在一个类(或方法.语句块)的内部定义另一个类 使用内部类的主要原因有: 内部类可以访问外部类中的数据,包括私有的数据.外部类不能访问内部类的变量 内部类可以对同一个包中的其他类隐藏起来. 当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷. 减少类的命名冲突. public class Outer { private int size; public…
List和Set区别 List和Set都是继承Collection接口 List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复 Set和List对比: Set:检索元素效率低下,删除和插入效率高,其删除和插入操作不会引起元素位置的改变. List:和数组类似,List可以动态增长,查找元素效率高,插入删除效率低,因为它会引起其他元素的位置改变. List和Map区别 List是对象集合,允许对象重复. Map是键值对集合,Key不允许重复. Arraylist和Lin…
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之数组.方法 Java基础学习笔记五 Java基础语法之类和ArrayList Java基础学习笔记六 Java基础语法之面向对象 Java基础学习笔记七 Java基础语法之继承和抽象类 Java基础学习笔记八 Java基础语法之接口 Java基础学习笔记九 Java基础语法之this和super J…
java语言的一个核心:jdk, java development kits---面向开发人员jre, java Runtime Environment---服务器上 java虚拟机---(以字节码为指令的CPU)---*.class java编译器-->字节码-->类加载器进行验证-->虚拟机运行 垃圾回收机制 public class ...{ int a = 1; } c/c++垃圾回收由程序员去运行 java编程语言(一门纯面向对象)的特点:1, 面向对象 1, 封装 2, 继承…