JAVA基本概念题

一,面向对象三大特征

1,封装 属性私有化,同时给该属性提供共有的get(获取)和set(设置)方法

2,多态 一个对象可以有多个形态。父类的引用指向子类对象。(继承普通类抽象类实现接口)

实现多态:1,使用父类作为方法形参时 2,使用父类作为方法返回值

3,继承 继承子类是对父类的 重用 拓展 修改

4,抽象 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。(另一种说法四大特征就加上)

二,常用JAVA内存分配

堆(存对象) 不存基本数据类型和对象引用  被所有线程共享

常量池(存基本类型常量和字符串常量)

方法区(方法)又叫做静态区 被所有线程共享 包含的都是程序中永远唯一的元素

方法栈(每个方法都有自己的栈,各个栈之间没有关系 可存放基本数据类型的数据)先进先出方式


SVN服务器(软件)所有成员的代码上传到一个SVN服务器上 是团队开法必须用的

三,GC垃圾回收机制

java提供了单独的守护进程,进行自动回收垃圾 防止堆内存存储对象过多发生内存溢出

垃圾:不存活的对象 判断对象存活有两种方式

        1)引用计数法:给对象添加一个引用计数器,每当被引用时 计数器+1,引用失效时-1。当记数为0时 该对象就是垃圾

        2)可达性分析:重肯定能访问的对象(GC Root)开始,向下遍历能遍历到的对象为可达对象,不可达对象为垃圾

              常用的GC Root:栈应用的对象 方法区中的静态属性和常量

1常见的清理方法

        1)标记-清理

            通过可达性分析将垃圾和存货的对象,进行标记,然后清理垃圾

            优缺点:方便简洁  但容易产生内存碎片

        2)标记-整理

            把存活对象通过挪动位置,让其扎堆存放

            优缺点:防止产生大量碎片 适合垃圾对象少的情况

        3)复制

            把内存分为两部分 程序只在一部分执行 当使用的那部分内存满时 将存活的对象复制到另一部分内存 垃圾直接清除

            优缺点:适合垃圾多 存活对象少的时候 但容易造成频繁的复制

  2堆分类:新生代(活对象少垃圾多) 老年代(垃圾少活对象多) 永久代

            新生代:存储程序运行时产生的大量对象(大部分为不可对象 被视为垃圾)

            老年代:存储新生代中少量长时间存货的对象

            永久代:存储静态文件,永久有效的文件(java8以经摒弃,被放在元空间 )

3新生代使用复制进行垃圾回收(包含三个区:伊甸区(Eden)存活A区 存活B区)8:1:1

4老年代使用标记整理进行垃圾回收

四,8种基本数据类型:byte short int long float double char boolean  String不是基本数据类型 它是java提供的一个类

五,java关键字

        abstract const false long short

        boolean default float native static

        break else while new super

        byte extends void null switch

        case final if transient synchronized

        cast finally implements package this

        catch for import private throw

        char goto instanceof protected throws

        class do interface public strictfp

        continue double true return

六,java 常用包

        java.lang.*,

        java.util.*,

        java.net.* ,

        java.io.*,

        java.text.*,

        java.sql.*,

        java.awt.*,

        java.swing.*.

七,数组三种定义方式:

        int[] s={1,2,3,4};

        int[] s=new int[]{1,2,3,4,5,6};

        动态定义数组:

        int[] s=new int[8];

八,遍历数组:

        数组长度:length

        for(int i=0;i<scores.length;i++){...}

九,类 对象 数组的基本概念

类:是对某一个类事物的特征抽取,可以理解为该类事物的模板或蓝图。

对象:是某类的一个具体实例,它具有该类中定义的所有属性以及方法

数组:具有相同数据类型的一组数

十,类 抽象类 接口定义内容的区别

类中可定义:属性 方法 代码块 静态代码块 构造方法

抽象类可定义:属性 方法 代码块 静态代码块 构造方法 抽象方法(只能继承一个类)

接口可定义:抽象方法 常量值(可以实现多个接口)

十一,对象和基本数据内心基本值

属性可以直接赋值,如果没有赋值,属性有默认值,引用类型的默认值是null

基本数据类型:整数是0,浮点数是0.0,char是空格,boolean是false


十二,访问权限修饰符

    public 共有的

        在任何地方都能访问的:本类中、本包其他位置、子类,其他包中

    protected 受保护的

        本类中,本包其他位置,子类

    默认(包级别)

        本类中,本包其他位置

    private 私有的

        本类中

十三,String Stringbuffer StringBuilder区别;

        String字符串是定长的 没做一次字符拼接其实是产生一个新字符串,消耗时间长 当拼接次数过多时 会造成内存资源浪费(线程不安全)

        StringBuilder 每次拼接字符都是同一个对象 消耗时间最短(线程不安全)

        Stringbuffer  每次拼接字符都是用一个对象 支持同步锁所以消耗时间比StringBuilder多一些(线程安全)

十四,vector ArraysList linkedList区别

        1,vector 线程同步 Arrayslist和linkedlist线程不同步

        2,vector和Arrayslist属于数组形式存储 linkedlist属于链表形式存储

        3,vector和Arrayslist适合查找 不适合操作 linkedlist适合操作不适合查找

        3,vector当数据满时自动扩大容器为%100 Arrarslist扩大%50 所以Arr...更节约空间

十五,hashMap hashtable区别

        1,Hashtable 是 JDK 1 遗留下来的类,而 HashMap 是后来增加的。

        2,Hashtable 是同步的,比较慢,但 HashMap 没有同步策略,所以会更快。

        3,Hashtable 不允许有个空的 key,但是 HashMap 允许出现一个 null key

      4,Hashtable 是线程安全的 HashMap线程不安全

        5,hashTable 每次扩容2n+1 hashmap每次扩容2倍

        6,HashTable做元素运算需要进行一次除法运算 效率低 HashMap使用的位运算

十六,集合框架继承关系图:

    Collection

        List 有索引下标,元素可重复

                -Vector

                -ArrayList

                -LinkedList

        Set 没索引下标,不可重复,元素存储是排好序的

                -HashSet

                -TreeSet

Map <key,value>

        -HashMap

        -HashTable

        -WeakHashMap

十七,常见的异常

        异常:分为编译时异常  和  运行时异常 和程序无法恢复的异常(内存崩溃)

        空指针异常:

                NullPointerException

        数字格式转换异常:

                NumberFormatException

        数组越界异常:

                ArrayIndexOutOfBoundsException 数组下标越界

        除0会报异常:

                ArithmeticException: / by zero

        类转换异常:

                ClassCastException

        并发修改异常;

                ConcurrentModificationException 如果某个集合对象创建了Iterator或者ListIterator,然后其它的线程试图“结构上”更改集合对象,就会抛出并发修改异常

        非法数据异常

                Illegal Argument Exception 如果某个集合对象创建了迭代器或者列表迭代器,而其他线程已经从结构上更改了集合对象,在调用Set()方法就会抛出非法数据异常

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,417评论 1 14
  • Java SE 基础: 封装、继承、多态 封装: 概念:就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽...
    Jayden_Cao阅读 2,109评论 0 8
  • 我只是想当一个安静写字的人。涉世未深的人都容易被灯红酒绿所迷惑,而我呢也在其中泥足深陷。现在呢,我只是想当一个回归...
    树林下雪了阅读 307评论 0 0
  • (野蛮生长社2.字数1140) 17岁的时候,我的梦想是当个作家。当时每个星期至少...
    不息_阅读 279评论 2 1