零碎

  • switch(x),x只可以是enum或byte、short、char、int。
  • 枚举在switch-case语句作为标签时必须是枚举常量的非限定名称,否则Compile Error。
  • Enum(枚举)的equals实现等价于==。
  • 如果String的字面值相等,则hashCode()和equals()都相等。
  • StringBuffer/StringBuilder的delete(int start,int end)实现中,如果end > length,则 end=length,也就是说如果end超出了字符串的长度length,则就把end当作length。
  • NumberFormatException extends IllegalArgumentException,且这两个异常都是 程序员 抛出的。
  • static方法中不能使用super关键字。
  • 实例变量不具有多态性。
  • 一般方法内不能声明任何静态变量,因为静态变量是在类加载时分配的空间。
  • High Cohension(高内聚): 类的目的单一明确。
  • Loose Coupling(松耦合): 一个类了解另一个类的程度,良好的封装有助于松耦合。
  • 不管在运行还是import某个类时,都需要使用类的完全限定名称,比如类的完全限定名称为com.hello.A.class,决不允许 java A ,而要 java com.hello.A。
  • Scanner如果nextXxx()与下一个标记不匹配,则抛出 InputMismatchException。

线程

  • 如果对同一个线程调用两次start,则抛 IllegalThreadStateException(extends RuntimeException)。
  • 多个线程都不相关,一个线程抛异常了,其他线程照样正常运行。
  • t.wait()的线程如果不拥有t的锁,则抛出IllegalMonitorStateException。
  • wait、join、sleep都需要用try-catch块捕获 InterruptedException。
  • Thread.interrupt():当线程调用wait()、sleep()、join()时被"interrupt",则中断状态清除,并抛出“InterruptedException”。
  • Thread.yield()不会释放锁,只是会提供机会给别的线程运行。

Thread的run方法实现如下:

  1. class Thread
  2. {
  3. Runnable target;
  4. public Thread(Runnable target)
  5. {
  6. this.target = target;
  7. }
  8. public void run()
  9. {
  10. if(target!=null)
  11. {
  12. target.run(); //调用Runnable的run方法
  13. }
  14. }
  15. }

DateFormat(抽象类)

  • DateFormat.getInstance();
  • DateFormat.getDateInstance();
  • DateFormat.getDateInstance(int style);
  • DateFormat.getDateInstance(int style,Locale loc);
  • DateFormat.getDateTimeInstance();
  • DateFormat.getDateTimeInstance(int dateStyle,int timeStyle);
  • DateFormat.getDateTimeInstance(int dateStyle,int timeStyle,Locale loc);
  • String format(Date date);
  • Date parse(String str) throws ParseException:其中ParseException是检验异常,需要用try-catch捕获。
  • void setCalendar(Calendar calendar);
  • Calendar getCalendar();

SimpleDateFormat(extends DateFormat)

  • new SimpleDateFormat(String pattern);
  • String format(Date date);
  • Date parse(String str) throws ParseException;

Locale(设置指定区域)

  • Locale(String language);
  • Locale(String language, String country);
  • language可查询:http://www.loc.gov/standards/iso639-2/php/English_list.php
  • country可查询:http://www.iso.org/iso/prods-services/iso3166ma/02iso-3166-code-lists/country_names_and_code_elements
  • Locale loc = Locale.getDefault(); 获得默认的地区

Date

  • new Date();
  • long getTime();
  • void setTime(long time);

Calendar(抽象类)

  • Calendar.getInstance();
  • Calendar.getInstance(Locale loc);
  • void setTime(Date date);
  • Date getTime();
  • add(int field, int value);
  • roll(int field, int value);
  • set(int year,int month,int day);

NumberFormat(抽象类)

  • NumberFormat.getInstance(): 数值转换
  • NumberFormat.getInstance(Locale loc): 特定地区的数值转换
  • NumberFormat.getNumberInstance():数值转换
  • NumberFormat.getNumberInstance(Locale loc): 特定地区的数值转换
  • NumberFormat.getCurrencyInstance():货币转换
  • NumberFormat.getCurrencyInstance(Locale loc):特定地区的货币转换
  • void setMinimumFractionDigits(int value):最小的小数点位数
  • void setMaximumFractionDigits(int value):最大小数点位数
  • void setParseIntegerOnly(boolean value):parse时是否只parse整数。
  • Number parse(String source) throws ParseException; //截断
  • String format(long/double number); //四舍五入

泛型

  • 类型擦除:为了兼容Java5之前未使用泛型的代码,编译生成class时,泛型都自动被去除了(可以用反编译工具验证)。
  • <? extends X>:接受X或X的子类,没有<? implements X>和 <T implements X>。
  • <? super X>:接受X或X的父类。
  • <?> 等价于 <? extends Object>,表示接受任何类。
  • 如果将通配符用于函数的参数,则如果使用<? extends X>或<?>( 不包括<? super X>),则该集合不能在函数中add元素,否则Compile Error。
  • 创建泛型方法:public <T> void fun(T x),注意在返回类型之前需要加上红色的字段。

哪些异常是编程方式抛出的,哪些是JVM抛出的?

数组的注意点

  • int[]a = {1,2,3} 和 int[]a = new int[]{1,2,3}(这种声明方式也称为“匿名数组声明”) 有什么区别?最大最明显的区别就是下面的例子。
  1. public class Array07
  2. {
  3. public static void fun(int[]a)
  4. {
  5.  
  6. }
  7. public static void main(String[] args) {
  8. //fun({1,2,3,4}); //Compile Error
  9. fun(new int[]{1,2,3,4}); //OK
  10. }
  11. }
  • int[][] myArray= {{6,7},{9,8,5}}; 在堆中创建了几个对象? 答案是3个,图示如下:

匿名内部类

  • 因为匿名内部类是没有类名的,因此不能直接定义构造函数,但是可以在编译时,自动生成构造函数(可以是无参、也可以是有参)。
  1. public class InnerClass07
  2. {
  3. public static void main(String[] args) {
  4. A a = new A(5) //OK
  5. {
  6. };
  7. }
  8. }
  9. class A
  10. {
  11. public A(int a)
  12. {
  13.  
  14. }
  15. }

匿名内部类反编译如下:

  1. static class InnerClass07$1 extends A
  2. {
  3. InnerClass07$1(int i)
  4. {
  5. super(i);
  6. }
  7. }

构造函数

  • default constructor(默认构造函数):编译器自动生成的构造函数。
  • non-parameter constructor(无参构造函数):自己定义的构造函数。
  • 默认构造函数会初始化实例变量。
  • 默认构造函数可能不会调用父类的构造函数,比如Object没有父类。

File

  • String getParent();
  • File getParentFile();
  • boolean isDirectory();
  • boolean isFile();
  • String[] list();
  • File[] listFiles();

BufferedWriter

  • newLine():使用当前平台的换行符新起一行。
  • close()、flush()、write();

FileWriter extends OutputStreamWriter

  • FileWriter(File file);
  • FileWriter(String file);
  • FileWriter(File file,boolean append);
  • FileWriter(String file,boolean append);

printf的 %b

  • 规则:如果arg为null,则结果为false,如果arg是一个boolean或Boolean,则结果就是实际值,否则,结果为true。
  • 例子:System.out.printf("%b",1); //输出 true。
  • 对于其他的Conersion char如 %d,%s等,如果不能成功转换,则抛:IllegalFormatConversionException。
  1. public class Printf01
  2. {
  3. public static void main(String[] args) {
  4. System.out.printf("%b",Math.E); //true
  5. System.out.printf("%b","false");//true
  6. System.out.printf("%b",false); //false
  7. System.out.printf("%b",null); //false
  8. }
  9. }

语法糖(Syntactic Sugar)

是由Peter J. Landin(和图灵一样的天才人物),是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。                                         ---百度百科

Java知识点:琐碎知识点(3)的更多相关文章

  1. Java入门学习知识点汇总

    Java入门重要知识点在这里总结一下,以方便日后复习,这部分内容主要有:变量和常量,常用的运算符,流程控制语句,数组,方法这些内容 一.变量和常量 1.Java关键字 先贴张图: 所有关键字区分大小写 ...

  2. Java编程学习知识点分享 入门必看

    Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...

  3. Java研发工程师知识点总结

    Java研发工程师知识点总结 最近一次更新2017年12月08日 大纲 一.Java基础(语言.集合框架.OOP.设计模式等) 二.Java高级(JavaEE.框架.服务器.工具等) 三.多线程和并发 ...

  4. 牛客网Java刷题知识点之为什么HashMap和HashSet区别

    不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...

  5. 牛客网Java刷题知识点之为什么HashMap不支持线程的同步,不是线程安全的?如何实现HashMap的同步?

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  6. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  7. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  8. 牛客网Java刷题知识点之垃圾回收算法过程、哪些内存需要回收、被标记需要清除对象的自我救赎、对象将根据存活的时间被分为:年轻代、年老代(Old Generation)、永久代、垃圾回收器的分类

    不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内 ...

  9. 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  10. 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

随机推荐

  1. python re 正则表达式[转]

    01.#!/usr/bin/env python 02.# -*- coding: utf-8 -*- 03.import re 04. 05.def regex(): 06. str = 'abcd ...

  2. hadoop 蓄水池抽样 分布式抽样

    #!/usr/bin/env python # -*- coding=utf8 -*- import sys import os import random #input split 1565 #&g ...

  3. uoj 67 新年的毒瘤 割点

    题目链接: 题目 #67. 新年的毒瘤 问题描述 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树. 这个长着毒瘤的树可以用 nn 个结点 mm 条无向边的无向图表示.这个图中有 ...

  4. jquery获取标签内容,编辑内容

    一.获取页面元素 三种方式获取页面中元素的内容. input标签使用:.val()获取 标签下的html及文本内容:.html() 仅获取标签下的纯文本内容:.text() <head> ...

  5. HDAO

    dx11 hdao10.1 除了dx的sample竟然搜不到什么文档.... 估计去问别人也是让我继续看代码.. ---------------------------------------- 算法 ...

  6. Oracle 10G 安装后 不能卸载, 不能打开Web管理....

    1. 不能卸载. 点击这个卸载.   提示:   解决方法: 右键卸载, 设置兼容性为XP. 就可以使用了.    2. oracle10g登录em后,提示"java.lang.Except ...

  7. 配置java环境

    1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 2.下载之后ne ...

  8. 被遗忘的Android mipmaps简介

    被遗忘的 Android mipmaps 简介 [导读]已经发布的 Android Studio1.1 版本是一个 bug 修复版本.在这个版本中,当你创建工程时一项改变将会吸引你的眼球.工程创建登陆 ...

  9. Amazon 面经

    [版面:待字闺中][首篇作者:gmadj] , 2013年09月29日21:51:33 [首页] [上页][下页][末页] [分页:1 2 ] gmadj 进入未名形象秀 我的博客     [回复] ...

  10. linux上应用程序的执行机制

    linux上应用程序的执行机制 执行文件是如何在shell中被"执行"的.本文中尽可能少用一些源码,免得太过于无 聊,主要讲清这个过程,感兴趣的同学可以去查看相应的源码了解更多的信 ...