javase基础笔记4——异常/单例和类集框架
继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public
异常
异常相当于人生病了。。
错误error exception error一般不可拯救的错误,虚拟机崩溃等,不可挽救 exception 可拯救的异常 两种拯救方式: try catch 语句块 捕获异常 try 可能出现异常问题的代码 catch 解决异常问题的代码 finally 无论如何都会执行的代码
throws 关键字 ,用于申明抛出异常 throw 生成异常对象的时候用到的。。因为这个关键字本身会产生异常,需要你抛出或者申明一下。。。
申明抛出异常后有两种解决办法,一种是捕获异常,另外一种是再次申明捕获异常,在main函数中建议直接捕获,不要抛给jvm了 异常对象有三个常用方法,如 e.getMessage() 打印该异常的基本名字 e.printStackTrace() 打印至默认的输出流 e.printStackTrace(PrintStream s) 打印至指定的地方
7.0 字面量 长字符表示 catch块并行写 泛型的简写 switch语句中可以接收String字符串 自动关流try
8.0 lambda表达式,替换内部类)()->{} 接口中可以有方法体 1.static关键字修饰方法 2.default权限修饰符修饰的方法 多态:父类的引用接收一个子类的对象
jdk升级一共三种原因 1,书写方便 字面量 _ 2,功能扩展 enum String 接口 3,提升效率 StringBuffer(低,线程安全) StringBuilder(高,线程不安全)、Vecter(线程安全的)/ArrayList(线程不安全的)
多线程 sychronized代码快 用了的 线程安全 不用的 线程不安全
多线程: 一个操作系统中有多个进程并发执行 一个进程中有多个线程兵法执行
实现多线程的两种方法 1、继承Thread类,重写run方法 2、实现Runnable接口,实现里边的run方法 java是单继承 线程调度: 分时调度 抢占式调度(默认)
单(实)例设计模式
class Demo {
//懒汉式的单例
// private Demo() {
// }
//
// private final static Demo d = null;
//
// static Demo getInstance() {
//
// if (d == null)
// return new Demo();
// return d;
// }
// 恶汉式的单例
// private Demo() {}
//
// private final static Demo d = new Demo();
//
// tatic Demo getInstance() {
//
// return d;
// }
}
StringBuffer 可变长的容器 可以一直往里边添加字符串
package com.llhc;
public class Demo {
public static void main(String[] args) {
// String s = new String("baixuelong");
// String sss = new String("dhbhdjhd");
// String ss = "djdbjdbj";
//
// System.out.println(s.charAt(0));
// System.out.println(s.endsWith("sd"));
// System.out.println(s.equals("dhbhdjhd"));//比较内容
// System.out.println(s==sss);//比较地址
// System.out.println(s.contains("hb"));//比较地址
// System.out.println(s.toUpperCase());//比较地址
// System.out.println(s.replace("dh", "bxl"));//比较地址
// System.out.println(s.substring(3,6));//包前不包括尾
// StringBuffer sb = new StringBuffer();
// sb.append(9);
// sb.append(8);
// sb.append(7);
// sb.append(6);
// System.out.println(sb.reverse());
System.out.println(Math.abs(-3));
//接收double 返回double
System.out.println(Math.ceil(3.4));//接收double类型,取接近这个数的最大整数 4 System.out.println(Math.floor(3.4));//接收double类型,取接近这个数的最小整数 3
}
}
util(集合/类集框架)
单列集合(Collection) list ArrayList(线性结构)、 Vector() enumration 、LinkedList(双向循环列表) set HashTable(哈希表)、HashSet(哈希表) TreeSet(二叉树)
双列集合(Map)<key:value> 一个身份证对应一个人 key不能重复,值可以重复 140202 白雪龙 140303 白雪龙 HashMap TreeMap
枚举的写法
while (en.hasMoreElements()) {
String name = (String) en.nextElement();
System.out.println(name+"==="+properties.getProperty(name));
}
hasMoreElements()、en.nextElement
Runtime和System类 gc()、exit() exec()必须是系统环境里预设的。接收字符串类型的
泛型
包装类 自动拆箱:包装类拆成基本数据类型 自动装箱:原始数据类型包装成对象 char Character int Integer
double Doble float Float
数组是能存放“对象”和“基本数据类型”的,但是他一开始就限定长度而且里边只能存放一种数据类型——集合 集合只能存放对象 泛型的特点 1.安全性提高 2.将运行时期异常转换到编译时 3.消除强制类型转换 增强for循环 for(变量类型 变量名 :需要循环的容器名 ) 实现collection接口的类都能用,还有底层是数组结构的也能用
javase基础笔记4——异常/单例和类集框架的更多相关文章
- cocos2d-x lua 实现单例(管理类)
cocos2d-x lua 实现单例(管理类) version: cocos2d-x 3.6 示例代码 local DogManager = class("DogManager") ...
- C++实现一个单例模板类
单例模式在项目开发中使用得比较多,一个单例的模板类显得很有必要,避免每次都要重复定义一个单例类型 //非多线程模式下的一个单例模板类的实现 // template_singleton.h #inclu ...
- C++可继承的单例基类模板
目录 一.介绍 二.代码 三.关键处 五.参考资料 一.介绍 最近在写一个项目,其中用到好几个单例,类本身的设计不是很复杂,但是如果每个都写一遍单例又觉得有点冗余:所以查资料写了一个单例基类模板,只要 ...
- 专题笔记--Java 类集框架
Java 类集框架 1. Java类集框架产生的原因 在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以使用链表来实 ...
- Java-马士兵设计模式学习笔记-工厂模式-单例及多例
一.单例的作用是用于控制类的生成方式,而不让外部类任意new对象 1.Car.java import java.util.ArrayList; import java.util.List; publi ...
- C# 通用单例窗体类
/// <summary> /// 通用的单例制作器 /// </summary> /// <typeparam name="T"></t ...
- php单例模式实现对象只被创建一次 mysql单例操作类
这是我在php面试题中遇到的一道试题,单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费. ...
- [javase学习笔记]-9.2 单继承与多重继承
这一节我们来看java中的单继承和多重继承. 在java语言中,支持的是单继承,不直接支持多继承,可是对C++中的多继承进行了改良. 那么什么是单继承和多继承呢? 单继承:一个子类仅仅能有一个直接父类 ...
- javase基础笔记2——数据类型和面向对象
API:Application program interface 程序调用一个方法去实现一个功能 正则表达式:regex 用来匹配的 javaEE里边有三大框架 SSH struts spring ...
随机推荐
- zpf 获取表单等数据的用法
2015年4月12日 12:25:35 星期日 zpf框架中获取表单数据的方法 //获得get,post,url中的数据 private function setData() { $this-> ...
- Nginx反向代理到Tomcat服务器
在实际生产中,Tomcat服务器一般不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外由于nginx是专门用于反向代理的服务器,所以很容易实现将java的请求转发到后端交给tomcat ...
- MinGW平台 openjpeg-2.1.0 静态编译后未定义引用的解决方法
undefined reference to __imp_opj_xxx keyword: ffmpeg,openjpeg,OPJ_EXPORTS,OPJ_STATIC,opj_version,__i ...
- js 一搬问题汇总
--有时无法进行js调试,在浏览器中设置启用脚本调试就可以了
- spring mvc 重定向问题
(1)我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的.我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表 ...
- 如何让Table中的第一列和第二列的值相乘然后赋值给第三列
因为需求的原因所以这样做,不废话了,直接上代码,我用的GridView绑定的数据,table也一样,因为GridView通过浏览器编译后的代码就是table.下面是aspx页面的Html代码: < ...
- noip2016复习
明天的复习任务 矩阵乘法 优先队列(老忘记怎么打) 二分图 K短路 单调队列(还是不太明白各种顺序) 扩展欧几里得 费马小定理求素数 哎呀,列了这么多,任重而道远啊-- 今夕是何夕,晚风过花庭-- 故 ...
- MAC下GitHub命令操作
由于GitHub实在太有用了~~ ,各种源代码,开源工程,经常需要下载下来使用和学习,或者自己的代码需要上传之类的,尽管有"GitHub for Mac"工具,但是作为一名程序猿! ...
- 八皇后(dfs+回溯)
重看了一下刘汝佳的白板书,上次写八皇后时并不是很懂,再写一次: 方法1:逐行放置皇后,然后递归: 代码: #include <bits/stdc++.h> #define MAXN 8 # ...
- jieba
# coding: utf-8 # ###jieba特性介绍 # 支持三种分词模式: # 精确模式,试图将句子最精确地切开,适合文本分析: # 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非 ...