Java基础部分 Day47 2019-01-06

Java基础部分

1. Java跨平台原理

Java通过不同的系统、不同版本、不同位数的Java虚拟机(JVM)来屏蔽不同的系统指令集差异,而对外统一的接口(Java API)。对开发者而言,按照接口开发即可。部署系统则只需要在不同的环境中安装对应版本的虚拟机即可。

2. 搭建一个Java开发环境

  1. 下载适用开发环境的jdk安装,配置好JAVA_HOME,java应用(eclipse、tomcat等)会依赖于这个变量。
  2. 下载安装eclipse,设置workspace的默认编码。
  3. 下载安装tomcat,把tomcat集成到eclipse中。
  4. 安装其他开发插件。

3. Java基础类型、占用字节及默认值

数据类型 大小(二进制位) 范围 默认值
byte 1字节(8bit) -128~127 0
short 2字节(16bit) -32768~32767 0
int 4字节(32bit) -2(31) ~ 2(31)-1 0
long 8字节(64bit) -2(31) ~ 2(31)-1 0
float 4字节(32bit) -2(63) ~ 2(63)-1 0.0f
double 8字节(64bit) -2(63) ~ 2(63)-1 0.0d
char 2字节(16bit) \u0000~\uffff \u0000
boolean 1字节(1bit) true/false false

4. 面向对象的特征

面向对象的四大特征:封装、抽象、继承、多态。

  • 封装:将对象封装为一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。
  • 抽象:把现实生活中一些事物相似和共性之处归为一类,忽略和当前主题无关的方面,抽象为类。
  • 继承:把一个已经存在的类所定义的内容作为自己的内容,并且可以加入自己的内容,或者修改原来的方法使之适用于当前特殊的需要。
  • 多态:父类或者接口定义的引用变量可以指向子类或者具体实现类的实例对象,而程序调用的方法在运行期才动态绑定。就是引用变量所指向的具体类型实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

5. 装箱与拆箱

  • 装箱:把基本的数据类型转换成对于的包装类型。
  • 拆箱:就是把包装类型转换为基本数据类型。
Integer i=1;//自动装箱,实际编译会调用Integer.valueOf方法来装箱
int j= i;//自动拆箱 实际在编译调用intValue int j = i.intValue();
  • Java是面向对象的语言,而基本数据类型,不具备面向对象的特性。
  • 缓存值:对象缓存,基本数据类型会有对象缓存。
Integer i=1;
Integer j=1;
i==j;//对象相等,是因为存在缓存值对象,所以i、j指向同一个对象

6. ==和equals方法的区别

  • == 用来判断两个变量之间的值是否相等,
    如果是基本数据类型的变量值直接比较值,引用类型比较要比较对应的引用的内存地址的首地址。
  • equals 用来比较两个对象是否一样,判断某些特征是否一样,实际上是调用对象的equals方法进行比较。

7. String 、StringBuilder、StringBuffer的区别

  • 都是用来表示和操作字符串,也就是多个字符的集合的类。
  • String 是内容不可变的字符串。底层使用的是一个不可变的字符数组(final char[]);
  • StringBuilder、StringBuffer是内容可改变的字符串,底层使用的是可变的字符数组(没有使用final来修饰)。
  • 拼接字符串不能使用String进行拼接,要使用StringBuilder、StringBuffer来拼接。因为String会创建很多新对象,StringBuilder、StringBuffer不会。
  • StringBuilder是线程不安全的,效率高;
    StringBuffer是线程安全的,效率低,底层有加同步锁。

8. Java中的集合

  • Java中的集合分为value、key-value(collection Map)两种。
  • 存储值分为List和Set
    • List 是有序的,可以重复。
    • Set 是无序的,不可重复的,根据equals和hashcode判断,因此一个对象要存储在Set里面,必须重写equals和hashcode的方法。
  • 存储key-value的为Map

9. ArrayList与linkedList的区别

  • ArrayList底层使用的是数组,linkedList使用的是链表。
    • 数组具有索引,查询特定的元素比较快,而插入和删除元素比较慢(数组在内存中是一块连续内存时,如果插入或删除是需要移动内存的)。
    • 链表不要求内存是连续的,在当前元素下存放上一个或下一个元素的地址,查询时需要从头部开始,一个个的查找,所以查询效率低。插入时不需要移动内存只需要改吧引用指向即可,所以插入或删除效率高。
  • 使用场景
    • ArrayList使用在查询比较多,但是插入和删除比较少的情况。
    • linkedList 使用在查询比较少,插入和删除比较多的情况。

10. HashMap与HashTable的区别,及ConcurrentHashMap

  • 相同点
    • 都可以用来存储key-value的数据
  • 不同点
    • HashMap是可以可以把null作为key或value的,而hashtable是不可以的。
    • HashMap是线程不安全的,效率比较高。hashTable是现场安全的,但是效率低。
  • ConcurrentHashMap

    通过把整个Map分为N个Segment(类似HashTable),可以提供相同的线程安全,但是效率提升N倍,默认提升16倍。

11. 实现一个拷贝文件的工具类,使用字节流还是字符流

拷贝的文件不确定是只包含字符流,有可能包含字节流(图片、声音、影像等),为考虑通用性,要使用字节流。

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

推荐阅读更多精彩内容