前言:记录Java基础知识点,方便熟悉与掌握。


1.面向对象的"六原则一法则"

“六原则一法则”:单一职责原则、开闭原则、依赖倒转原则、里氏替换原则、接口隔离原则、合成聚合复用原则和迪米特法则。

参考:

https://www.cnblogs.com/qifengshi/p/5709594.html

https://blog.csdn.net/sinat_26342009/article/details/46419873

2.使用普通for循环遍历LinkedList速度慢

原因:LinkedList在get任何一个位置的数据的时候,都会把前面的数据走一遍。

参考:

http://www.cnblogs.com/xrq730/p/5189565.html

3.使用File类相关注意点

在使用File类进行IO操作的时候,主要注意文件路径的书写方式,“/”和“\”,都可以用,但是后者需要进行转义(“\\”),也可以使用File.separator作为分隔符,可以获取不同操作系统下的分隔符,增强代码的移植性。

参考:

http://www.cnblogs.com/xrq730/p/4886636.html

4.关于多态

要点:

在子类向上转型时,注意重写方法的运行时绑定问题。父类引用指向子类对象,子类重写了父类的方法,在调用父类的方法时,实际上调用的是子类重写的父类的该方法。即Father f = new Children(),f.toString()实际上调用的是Children中的toString()方法。

参考:

http://www.cnblogs.com/xrq730/p/4820237.html

https://www.cnblogs.com/chenssy/p/3372798.html

https://blog.csdn.net/thinkGhoster/article/details/2307001

5.线程不能多次start的原因

通过对Thread源码的调试,当第二次start的时候,线程状态已经不是新建,会抛出IllegalThreadStateException异常。

if (threadStatus != 0) //检查线程状态,如果不是0,就抛出异常,0表示新建线程
throw new IllegalThreadStateException();

6.关于枚举

注意:枚举值默认为从0开始的有序数值

参考:

https://www.cnblogs.com/jingmoxukong/p/6098351.html

http://www.cnblogs.com/xrq730/p/4890313.html

7.final的作用

要点:

1、被final修饰的类不可以被继承。

2、被final修饰的方法不可以被重写。

3、被final修饰的变量不可以被改变。变量可分为基本数据类型变量和引用变量,被final修饰的基本数据类型变量,其值不能被修改;被final修饰的引用型变量其引用地址不能被修改,其内容是可以改变的。但是其本质还是其引用地址不能被改变,内容是可以改变的

参考:

http://www.cnblogs.com/xrq730/p/4820296.html

http://www.cnblogs.com/dolphin0520/p/3736238.html

8.字符编码

要点:Java中的字符使用的都是Unicode字符集,编码方式为UTF-16。

参考:

http://www.cnblogs.com/xrq730/p/4889593.html

9.位移运算

1)左移: << ,丢弃左边指定位数,右边补0。

2)右移:>>,丢弃右边指定位数,左边补上符号位。

3)无符号右移:>>>,丢弃右边指定位数,左边补上0。

参考:

https://zhuanlan.zhihu.com/p/30108890

10.I/O模型

主要了解同步、异步、阻塞、非阻塞、同步I/O、异步I/O、阻塞I/O、非阻塞I/O,这些都是不同的概念。

参考:

http://www.cnblogs.com/dolphin0520/p/3916526.html

by Shawn Chen,2018.4.28日,上午。


相关内容

Java基础知识点(一)

Java基础知识点(二)

Java基础知识点(三)

Java基础知识点(四)的更多相关文章

  1. Java基础知识点(三)

    前言:准备将Java基础知识点总结成一个系列,用于平常复习并加深理解.每篇尽量做到短小精悍,便于阅读. 1.Math类中相关函数 Math.floor(x):返回不大于x的最大整数.eg:Math.f ...

  2. Java基础知识点(二)

    前言:Java的基础知识点不能间断. 1.Array和ArrayList的区别 关于Array的用法,参看:http://blog.csdn.net/b_11111/article/details/5 ...

  3. Java基础知识点(一)

    前言:本篇随笔,主要记录Java的基础知识点,不管是用于项目或者面试中,笔者认为都非常有用,所以将持续更新...... 1.Java的访问权限 Java中有四种访问权限:默认访问权限.public.p ...

  4. JAVA基础知识点总结(全集)

    1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境 ...

  5. Java基础知识点总结

    前言 本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其 ...

  6. java基础知识点补充---二维数组

    #java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...

  7. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  8. Java 基础知识点

    很多 Java 基础的东西都忘记了, 有必要再复习一些基本的知识点. 本文主要参考 https://github.com/Snailclimb/JavaGuide ================== ...

  9. Java基础知识点

    以下10点为JAVA 基础知识,后面将足以总结和完善以备面试 数据类型 (包装类,字符串,数组) 异常处理 Java IO和NIO 数据结构 (集合和容器 ) 多线程(并发) 网络通信(协议) 面向对 ...

随机推荐

  1. Spring.net的一些感悟

    模拟Oracle+spring.net+NHibernate+MVC 对DLL文件引用问题得注意,库文件最好放在固定目录,否则严重影响项目迁移的成功, 由此可见,“代码规范”的重要性(自己大部分时间耽 ...

  2. Codeforces Round #304 (Div. 2) -----CF546

    A. Soldier and Bananas   A soldier wants to buy w bananas in the shop. He has to pay k dollars for t ...

  3. mapper加载的3种方法

    <!-- mapper加载有3种方法: 1:通过resource或url加载单个mapper 2:通过mapper接口类名加载单个mapper 3:通过package批量加载多个mapper(推 ...

  4. 去除input[type=number]的默认样式

    input[type=number] { -moz-appearance: textfield; } input[type=number]::-webkit-inner-spin-button, in ...

  5. POI 读取 excel

    xls 和 xlsx 后缀是因为 world excel 版本不一致,需要区别对待 依赖 <dependency> <groupId>org.apache.poi</gr ...

  6. mysql随笔系列-1

    MySQL数据库管理 本人实验所用的MySQL数据库版本:5.5.56-MariaDB MariaDB Server  操作系统:centos7.5 1.创建数据库 MariaDB [(none)]& ...

  7. LVS + HAProxy实现跨网负载均衡

  8. Android Studio 无法预览xml布局视图:failed to load AppCompat ActionBar with unkNown error

    问题如下: 解决方法: 找到res-->values-->styles.xml 文件 可以看到主题Them设置如下: 修改为: 界面预览可以正常显示

  9. 不能用notepad++编辑器编写python

    不能用notepad++编辑器编写python,因为notepad对空格支持不是很良好,会出现莫名其妙的错误!建议用vim或emacs. 有人这样解释:不要混合使用制表符和空格来缩进,因为这在跨越不同 ...

  10. Statement和PreparedStatement的异同

    1.首先两个都是java向数据库执行sql语句的对象! java代码连接数据库,并且执行sql语句的步骤如下: //1.注册数据库的驱动程序 Class.forName(driverClass); / ...