Java
橘泽
这个作者很懒,什么都没留下…
展开
-
Java之初识Object类——toString方法和equalsf方法
Java之Object类定义:JDK默认的提供的一个类,所有类默认继承Object类Object类是所有类的父类,使用Object类可以接收所有类的对象(还可以接收所有引用数据类型-----数组和接口)取得对象信息:toString();默认输出的是一个地址编码,而使用系统输出String常量时,输出的是字符串内容,本质原因在于Object类提供的toString()有没有被类覆写...原创 2019-03-20 18:33:44 · 195 阅读 · 1 评论 -
模板设计模式
模板设计模式:模板设计模式的格式是:抽象父类(含钩子方法)+子类覆写模板设计模式从字面上理解就是给系统一个统一的步骤做模板,让所有的工程都统一,他的存在在代码中使算法更加集中,保护了算法不被更改,并且因为使用这个模式的前提是大多数的内容都是重复的,如果分开写就会有大量重复代码,所以使用模板模式会使代码复用最大化,如果核心算法升级了有需要更改,在这种模式下也更容易更改,不需要在大量的工程中...原创 2019-08-06 15:48:10 · 105 阅读 · 0 评论 -
Java的内存模型JMM(描述并发程序的逻辑模型)
Java的内存模型JMM(描述并发程序的逻辑模型)java的内存模型主要是定义JVM如何将变量存储到内存中,又如何将内存中的变量取回等细节。变量(线程共享):类中的实例属性,静态属性及数组元素。线程私有:局部变量,方法参数规定所有变量必须存储在主内存中。每个线程还有自己的工作内存,工作内存中保存了该线程使用到的变量的主内存拷贝副本。线程对于变量的所有操作(读取,赋值等)必须在工作内存...原创 2019-08-13 12:30:24 · 142 阅读 · 0 评论 -
工厂设计模式(重点)
工厂设计模式(重点)简单工厂模式缺点:添加具体产品需要修改工厂,违反OCP开闭原则。专门定义一个类,用来创建其他类的实例,被创建的实例通常都具有共同的父类。代码:package com.irilia.FactoryDesignPattern;import java.util.Scanner;/*1.一个抽象产品类(接口:用来生产产品) 2.具体产品类 3.工厂* */i...原创 2019-08-06 19:06:31 · 119 阅读 · 0 评论 -
java内存区域
Java的内存区域划分:–6大区域一.线程私有内存–3个线程私有指这三块区域的生命周期与线程的生命周期相同,随着线程的创建而创建,随着线程的销毁而回收,不同线程间这三块内存彼此隔离。程序计数器(每个线程都需要一个程序计数器来记录中断的位置,所以是线程私有的)a. 定义:在执行字节码的过程中,CPU突然中断去执行别的任务,当前中断位置被记入程序计数器,当CPU回来继续工作时,从程序计...原创 2019-08-13 15:55:40 · 132 阅读 · 0 评论 -
代理设计模式(重点)
代理设计模式(重点)一个服务类接口,一个真实业务类,一个代理类,都实现了接口;代理类调用正式业务类的方法并补充自己的方法;所有的真实业务操作都会有一个与之辅助的工具类(功能类)共同完成。如果有功能的增加,只要改变代理类就可以,不用改真实业务类,符合OCP原则;代码:package com.irilia.ProxyPattern;/*1.业务接口* 2.真实业务类* 3.代理类*/...原创 2019-08-06 21:26:12 · 94 阅读 · 0 评论 -
多线程总结--1:线程的状态?常用的线程操作方法?
线程的状态:线程状态有5种,创建,就绪,运行,终止,阻塞,关系如图;常用的线程操作方法?得到线程对象:Thread类的currentThread();得到线程名称:Thread类的getName();设置线程名称:Thread类的setName(String name);创建线程的时候设置名字:Thread类的构造方法public Thread(Runnable target,St...原创 2019-08-10 00:56:52 · 108 阅读 · 0 评论 -
多线程总结--2:怎样实现多线程?
怎样实现多线程?实现多线程的方式有3种:继承Thread类:Thread类中有一个run方法,覆写run方法,运行线程要调用Thread类的start方法。实际上Thread类中的run方法也是覆写的;实现Runnable接口:继承Thread类有单继承的缺陷,Thread类本身也实现了Runnable接口,所以实现Runnable接口让代码更加灵活,并且实现Runnable接口可以更好...原创 2019-08-10 01:13:56 · 439 阅读 · 0 评论 -
多线程总结--3:怎么停止线程?线程优先级?线程守护?
怎么停止线程?Java多线程有三种停止线程的方法:使用stop()方法强制线程退出,但是此方法会残留不完整数据,因为stop会解除线程获取的所有锁。现在已经不使用这种方法了。设置标志位,使线程正常退出,setFlag() 方法;标志位:myThread.setFlag(false);这样调用,该线程就被终止了使用Thread类的interrupt()方法中断线程,但是原理也是设置标志位...原创 2019-08-10 12:30:03 · 184 阅读 · 0 评论 -
集合框架总结--Collection和List接口
ArrayList,Vector,LinkedList的关系和区别HashMap,HashTable,TreeMap的关系与区别为什么线程安全的Map集合不用HashTable而用ConcurrentHashMap?类集里的fail-fast机制,快速失败策略CopyOnWriteArrayList类集JDK1.2概念:用来保存数据的集合作用:可以解决数组的定长问题顶层接口:C...原创 2019-08-14 23:13:24 · 175 阅读 · 0 评论 -
集合框架总结---Set接口
Set接口(本质是Map接口,底层实现在Map里看):不允许元素重复两个子类:HashSet(HashMap):jdk1.8之后的底层实现是哈希表+红黑树,1.8之前只有哈希表哈希表:一个数组,每个数组元素后面又跟着链表。HashSet使用equals和hashCode共同来判断元素是否重复。equals:判断两个对象的属性是否相同hashCode:对象在内存中的...原创 2019-08-15 16:34:17 · 97 阅读 · 0 评论 -
性能测试框架项目报告
项目报告:心路历程:项目的灵感来自一款叫做JMH的基准测试框架。JMH是代码微基准测试的工具套件什么是性能测试系统在特定负载的情况下,相应时间和稳定性的表现情况。1.系统:自己开发的程序,测试反映出我们开发程序的质量好坏。2.负载:单位时间内客户请求的数量。3.相应时间:客户从发起请求到接收到成功或失败响应的时间。4.稳定性:指任意时间,响应时间的波动情况,波动越小的系统越好。...原创 2019-08-20 23:26:41 · 288 阅读 · 0 评论 -
GC垃圾回收策略
垃圾回收策略:针对线程共享内存(堆,方法区)判断对象是否存活的方法:引用计数法(Python,c++智能指针):1)内容:给每个对象增加一个引用计数器,每当有一个引用指向当前对象时,计数器+1,当引用失效时,计数器就-1,任何时刻计数器为0的对象就是不能再被使用的,即对象已死。2). 缺点:无法解决循环引用问题(我中有你,你中有我)可达性分析法(Java,C#,Lisp):通...原创 2019-08-15 23:41:55 · 255 阅读 · 0 评论 -
java之多态
之前在java的基础总结里提到过多态,没有详细分析,现在来好好分析一下java的面向对象三大特征之一------多态多态性多态可以干什么:利用多态可以得到良好的设计在java中,多态的核心表现在两个方面:方法的多态性方法重载:同一个类中,定义方法名相同,参数类型或参数个数不同的方法,对访问权限没有限制,基于良好的设计,方法返回值类型最好相同。方法覆写:在继承关系中,子类定义方...原创 2019-08-02 23:30:41 · 117 阅读 · 0 评论 -
String类的常用方法总结
String类的常用方法总结文章目录String类的常用方法总结1. 求字符串长度2. 求字符串某一位置字符3. 提取子串4. 字符串比较5. 字符串分解6. 判断字符串中是否包含一个指定字符7. 字符串连接8. 在字符串中查找单个字符9. 字符串大小写转换10. 字符串中字符的替换1. 求字符串长度public int length()--返回该字符串的长度2. 求字符串某一位置字符p...原创 2019-05-28 00:01:31 · 180 阅读 · 0 评论 -
异常与捕获(Throwable)(受查错误,非受查错误)(抛出异常)
异常与捕获(Throwable)(受查错误,非受查错误)(抛出异常)Throwable:Error: 内部错误,资源耗尽错误,只能终止程序;(非受查异常)Exception:受查异常(必须捕获或重新抛出),非受查异常(RuntimeException运行时异常)运行时异常:ArithemticExceptionNumberFormatExceptionArrayIndexOutOfB...原创 2019-03-20 20:13:45 · 1986 阅读 · 0 评论 -
Java之类成员(类成员,单例类)
Java之类成员理解类成员定义:以static修饰的成员就是类成员;Java类中有六种成员:属性,方法,构造器,内部类,初始化块,枚举类,其中static可以修饰的有:属性,方法,内部类,初始化块,枚举类;(除构造器)类成员属于整个类1.类属性生存范围:几乎与该类生存范围相同;当类初始化完成后,类属性也被初始化完成;2.访问类属性:类属性既可以通过类来访问,也可以通过类的对象访...原创 2019-03-24 18:19:53 · 506 阅读 · 0 评论 -
静态初始化块与普通初始化块与构造器的先后关系
静态初始化块与普通初始化块与构造器的先后关系直接拿出栗子:public class TestSequance { public static void main(String[] args) { new Max(); new Max(); }}class Root{ static{ System.out.printl...原创 2019-03-24 22:43:22 · 167 阅读 · 0 评论 -
Java包的定义与使用
包的定义与使用1.包(package)的定义以后在进入源文件时先定义包。Java包的本质就是一个文件夹,避免类名重复的问题。在源文件首行使用package定义包名编译时加上 -d 参数javac -d 源文件所在路径—绝对路径(当前路径 .)源文件名称编译 javac -d. Test.java运行时使用类的全名称(包名.类名)运行 java www...原创 2019-03-22 23:45:03 · 585 阅读 · 0 评论 -
包装类及其用法(装箱拆箱)
基本数据类型的包装类Java是面向对象的编程语言,但他也包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特征:没有属性,方法可以被调用;这8种基本数据类型带来了一定的方便之处:可以进行简单有效的常规数据处理;但某些时候,基本数据类型就会有写制约:所有引用类型的变量都继承了Object类,都可以当成Object类型变量使用,但基本数据...原创 2019-03-23 13:55:04 · 205 阅读 · 0 评论 -
JavaSE基本总结
Java面向对象Java这门语言是面向对象的程序设计语言,它提供了定义类,定义属性,方法等最基本的功能。类可以认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是应用变量。它们将会引用到类的对象,对象由类负责创建。类是什么?类用于描述客观世界里某一类对象的共同特征,对象是类的具体存在,举个栗子:人有一类称为人类,这一类包含许多属性,比如人类可以思考,可以工作,...原创 2019-04-09 20:00:17 · 165 阅读 · 0 评论 -
Java之反射
没有反射就没有EE的任何框架类与对象:正向处理:先有类,再根据类创建对象反射:根据现有对象,倒推类的组成最核心的类:class类任何类在jvm中都有唯一的一个class对象,此对象(class对象)记录该类的组成结构,此class对象在类加载时由jvm产生,用户只能取得此对象,不能创建。要想在Java中应用反射,首先要取得该类的class对象;调用Object类提供的getCl...原创 2019-04-16 12:58:51 · 104 阅读 · 0 评论 -
Java之泛型
泛型定义:类和方法在定义时类型不确定,只有在具体使用时才能确定类型作用:泛型是编译器的一种保护作用,用来解决类型转换间的安全隐患;在两个毫无关系的类发生强转时会产生运行时异常,为了能在编译时就能检测出来,因此引入了泛型。语法表示:< T >, <>表示泛型,T表示类型参数,T可以指定为不包括基本类型的任意类型。注意:引用泛型后,一个泛型类的类型在使用时已经确定好,...原创 2019-05-11 15:29:49 · 170 阅读 · 0 评论 -
Java之通配符
通配符上一篇介绍了Java的泛型,泛型的引用也带来了一个新的问题:引用泛型后参数类型被确定,方法参数只能接收一种类型的泛型类,当你有一个print泛型方法,你传入String后又想有一个类型是Integer的,这是不可以的,但是如果你不使用泛型又会出警告,而通配符就是用来解决这个问题的。通配符标志:?语法:<?>定义:表示指代任意类型的泛型类,因为传入的类型不确定,不能通...原创 2019-05-11 16:08:38 · 434 阅读 · 0 评论 -
Java之抽象类与接口
抽象类与接口的区别:N区别抽象类接口1结构组成普通类+抽象方法抽象方法+全局常量2权限各种权限public3子类使用使用extends关键字继承抽象类使用implements关键字实现接口4关系一个抽象类可以实现若干个接口接口不能继承抽象类,但接口可以使用extends关键字继承多个父接口5子类限制一个子类只能继承一个抽...原创 2019-05-11 16:59:42 · 90 阅读 · 0 评论 -
Lambda表达式/函数编程和方法引用
Lambda表达式/函数编程前提:要求接口中有且只有一个抽象方法函数接口:这个接口有且只有一个抽象方法,使用jdk8新增@FunctionalInterface注解,只能用于接口声明,作用:检测接口中是否只有一个抽象方法语法:(参数名列表,不带类型) -> {实现体(单行语句)} ;eg:单行语句:无参数 ()-> 单行语句(省略{ })如果方法没有返回值:实...原创 2019-05-11 18:09:54 · 404 阅读 · 0 评论 -
Java之IO相关操作
File文件操作类定义:Java.io包中唯一一个与文件本身操作相关的类,如文件的创建,删除,取得信息,与文件内容无关File既可以描述文件也可以描述文件夹File类的使用:实例化对象用到两个构造方法(根据文件路径创建文件,文件可以不存在):File(String pathname)/File(String parent,String child):设置父路径和子路径创建一个新...原创 2019-05-18 12:22:19 · 333 阅读 · 0 评论 -
集合框架总结---Map
MapMap是保存一对对象的最大父接口,里面是以键值对(key : value)的形式存储(key值唯一),如果key值重复了,那么value值会被覆盖。key值可以为null。Map中的常用方法:get(E key): 当key不存在时,返回nullMap集合的常用子类HashMap中key值和value值都可以为空 等同于HashSat JDK1.2; 线程不安全; 底层结...原创 2019-08-16 09:21:52 · 122 阅读 · 0 评论