
Java
文章平均质量分 67
romanyee
Go farther!
展开
-
1.Java基础之标识符命名法、八大基本数据类型三大引用类型、运算符以及程序分支结构、方法的定义重载递归
一、基础导入:1.java采用Unicode编码,16进制编码,支持世界上所有语言(GBK,gb2312,Unicode,UTF-8,ISO-8859-1)。多线程---> c-编译型语言Test.java--源文件,源文件必须与主类名(public class Test)保持一致。一个源文件只有一个主类。 主方法存在于主类中。 2.java程序编译-执行流程:编...原创 2018-10-26 00:50:56 · 529 阅读 · 0 评论 -
10.JavaSE_单例模式_多例模式、异常(受查异常、非受查异常)、断言异常
一、单例模式定义:一个类只允许产生一个实例化对象。1、饿汉式单例:上来就new。面试中最好写这个。class Singleton{ //类内部提供实例化对象 private static final Singleton SINGLETON = new Singleton();//上来就new //构造方法私有化,类外部无法产生实例化对象 private Singleton(){}...原创 2019-01-24 17:06:56 · 263 阅读 · 0 评论 -
11.JavaSE_链表(单链表、双向链表)
1、基本介绍:为解决空间浪费等问题,应采用火车车厢的设计模式,动态进行车厢的挂载。//单链表class Node{ private Object data; private Node next; public Node(Object data) { this.data = data; } public Object getData...原创 2019-01-24 18:57:50 · 351 阅读 · 0 评论 -
12.JavaSE_泛型类、泛型方法、泛型接口、类型擦除(语法糖)、通配符接收任意参数|取得泛型上限和下限_可变参数_foreach_了解静态导入_
一、JDK1.5新特性1、可变参数:要求方法可以接收任意个整数并且返回他们的相加结果。package 泛型;public class Test0124_1 { public static int add(int... data) { int result = 0; for (int i = 0; i < data.length; i++) {...原创 2019-01-25 16:22:02 · 311 阅读 · 0 评论 -
13.JavaSE_枚举的使用_注解中的准确覆写、过期声明、压制警告、_接口定义增强使用default和static_Lambda表达式的三种情况_方法引用的四种情景_内建函数式接口的常见四种接口
一、枚举要求定义一个表示颜色(红、绿、蓝)基类的类语法:enum Color{RED,GREEN,BLUE;}使用enum关键字定义的枚举结构实际上是默认继承了Enum类的枚举类。Enum类中存在两大属性:name:枚举对象名称ordinal:枚举对象数字下标protected Enum(String name,int ordinal);构造方法public final...原创 2019-01-26 18:13:10 · 342 阅读 · 0 评论 -
9.JavaSE_包的定义与使用_包的导入_系统常用包_访问控制权限_jar命令
1、包的定义与使用(文件夹)—package包实际上就是一个文件夹。如:package www.roman.java;(在java文件首行使用即可)package www.roman.java;//包的定义与使用public class Test{ public static void main(String[] args){ System.out.println("hello wor...原创 2019-01-22 22:06:40 · 229 阅读 · 0 评论 -
14.JavaSE_多线程(80%)
一、进程与线程的概念1、进程:操作系统中一个程序的执行周期2、线程:一个进程同时执行多个任务。通常来讲,每一个任务就称为一个线程。3、进程与线程的比较:与进程相比,线程更加“轻量级”,创建、撤销一个线程比启动、撤销一个进程开销小得多。一个进程中的所有线程共享此进程的所有资源。没有进程就没有线程,进程一旦终止,其内的线程也将不复存在。进程是操作系统资源调度的基本单位,进程可以独享资源...原创 2019-02-15 15:16:30 · 143 阅读 · 0 评论 -
15.Java_生产者消费者模型
一、生产者、消费者模型(两者之间有一个媒介传递数据)生产者和消费者通过阻塞队列进行通讯。生产者生产完数据后不用等消费者处理,直接扔给阻塞队列,消费者直接从阻塞队列里取,阻塞队列相当于一个缓冲区。1、wait()—痴汉方法。从运行态回阻塞态。死等,直到notify方法把它唤醒。等待线程。wait():使线程停止运行,会释放对象锁。三个特点:①当前线程调用wait()方法后进行等待,并且该...原创 2019-02-15 17:22:37 · 128 阅读 · 0 评论 -
16.Java_Lock体系
一、Lock简介(JDK1.5提供的)Lock lock = new ReetrantLock();try{ lock.lock(); //以下代码只有一个线程可以运行 ...}finally{ lock.unlock();//显式解锁}二、lock常见APIlock体系拥有可中断的获取锁、超时获取锁以及共享锁等内建锁不具备的特性。void lock();//获取锁v...原创 2019-02-16 14:54:29 · 284 阅读 · 0 评论 -
你所认为的阶乘从不是你认为的N!解密Java大数相乘,解决超过int,long支持的最大长度的数字存储问题
通常我们认为阶乘是这样的:public class Test{ public static void main(String[] args){ System.out.println(fac(60)); } public static int fac(int num){ if(num <= 2){ return num; }else{ return num*fa...原创 2019-07-28 12:20:56 · 469 阅读 · 0 评论 -
项目_仿Redis数据库的协议解析过程及命令的基本实现
Redis是一款数据跑在内存上的数据库我们常用的是MySQL或者SqlServer数据库。我们在需要缓存的前提下,为什么要引入redis或者memcached呢?-----> 可以使用缓存,但是没必要。自己做缓存成本较高。Tips:memcached是分布式缓存Redis vs Memcachedredis支持的数据结构更丰富redis支持的社区更友好redis效率很高...原创 2019-08-29 18:09:50 · 342 阅读 · 0 评论 -
7.2.Java_(重点)工厂设计模式:简单工厂模式、工厂方法模式、抽象工厂模式的定义/组成/优缺点
一、简单工厂:用于没有产品族且产品个数较少–Spring-BeanFactory1.定义:专门定义一个类(或者说第三方)用来创建其它类的实例,并且被创建的实例通常具有共同的父类。 (解耦:将客户端创建对象的操作解耦到外部第三方类中)2.组成:一个抽象产品类N个具体产品类一个工厂类import java.util.Scanner;//1个抽象产品类interface Com...原创 2018-11-19 20:42:30 · 287 阅读 · 0 评论 -
7.1.Java_接口,为什么要使用接口,接口的定义,接口优先原则,命名规范,子类用implements实现接口,使用限制,接口定义内部结构,子类继承抽象类实现接口,接口的应用电脑可使用任何USB设备
一、接口为什么要使用接口?原因:抽象类与普通类相比,抽象类约定了子类的实现要求,但是抽象类存在单继承局限。如果要约定子类的实现要求并且避免单继承局限就需要使用接口。定义:一个抽象方法与全局产量的集合(JDK8之前),使用interface关键字定义。定义一个简单接口:interface IMessage{ public static final String MSG = "I am a...原创 2018-11-19 17:38:20 · 549 阅读 · 0 评论 -
2.Java数组_一维数组二维数组的动态初始化与静态初始化、方法接收/返回/修改数组、java对数组的排序/全拷贝/部分拷贝
Java数组----引用数据类型,必须在使用前先初始化;否则会nullPointerException(运行时异常)。(引用传递:多个栈内存指向同一块堆内存)1.一维数组初始化(1)动态初始化(声明并开辟数组)数据类型[] 数组名称 = new 数据类型[长度];如:声明并开辟一个长度为5的整型数组:int[] data = new data[5];注:数组通过下标索引...原创 2018-10-26 15:12:11 · 526 阅读 · 0 评论 -
4.Java_关键字this、super、static、final(终结器)与基本数据类型转换
一、关键字this1.表示调用本类属性:在类中访问类的属性,一定要加上this关键字。2.表示调用本类方法: (1)调用普通方法:this.方法名(参数); 当有类的继承关系时,表示本类方法一定要加上this关键字。(*****)(2)调用构造方法:this(参数) ; 注:this调用构造方法必须放在构造方法首行,并且不允许成环。 (3)表...原创 2018-10-29 18:37:33 · 186 阅读 · 0 评论 -
5.Java_代码块普通代码块、构造块、静态代码块、同步代码块以及内部类的使用和创建、内部类与外部类的关系、语法、优缺点分类(成员内部类、静态内部类、方法内部类、匿名内部类)
一、代码块:根据代码块出现的位置以及关键字,分为以下四种1.普通代码块(了解):定义在方法中的代码块。2.构造块(*****):定义在类中的代码块(不加任何修饰符)在对象产生时,优先于构造方法执行。 有几个对象产生,就调用几次构造块。 用于在构造方法执行前完成一些属性的初始化。3.静态代码块:(1)非主类的静态代码块:在类加载时执行(什么时候用到这个类,就叫类加载)。 ...原创 2018-10-31 14:05:14 · 351 阅读 · 0 评论 -
3.Java面向对象编程OOA/OOP/OOD/OOAD()/UML类图、函数式编程Scala(JVM)---类与对象、封装继承多态、构造方法、覆写/重写/override
一、绪论1.面向对象编程范式(C++、Java、Go)------能进行现实生活的抽象。 每个对象都是一个类。类中包含属性与方法。OOA:面向对象分析 OOP:面向对象编程 OOD:面向对象设计 OOAD() UML类图2.面向过程编程范式(C语言)3.面向切口编程(EE-AOP)4.面向接口编程---接口优先原则5.函数式编程---Sca...原创 2018-10-28 00:57:23 · 428 阅读 · 0 评论 -
6.Java_抽象类的定义,抽象方法的定义,抽象类的使用原则与相关规定
一、抽象类 定义:在普通类的基础上扩充了一些抽象方法 。1. 抽象方法:只声明而未实现的方法(没有方法体)所有抽象方法使用abstract定义。同时抽象方法所在的类也要用abstract定义,表示抽象类。举例:定义一个抽象类:抽象类中没有具体实现,因此抽象类不能直接实例化对象abstract class Person{ private String name;//姓名属性...原创 2018-11-18 18:33:19 · 16123 阅读 · 0 评论 -
7.Java_模板设计模式---抽象类的实际应用(咖啡和茶的冲泡法),基于抽象类,核心是封装算法。引入钩子方法。开闭原则。23种设计模式
基于抽象类的模板设计模式,核心是封装算法。1、模板方法定义了一个算法的步骤,允许子类为一个或多个步骤提供具体实现。2、模板(模板方法)模式:(典型:Servlet),AQS 在一个方法中定义算法的框架,将一些具体步骤延迟到子类中实现。 模板模式可以使子类在不改变算法的基础上,重新定义算法中的某些具体步骤。3.开闭原则(OCP):一个软件实体,如类、函数、模块应对扩展开放,对修改关闭...原创 2018-11-18 20:16:45 · 324 阅读 · 0 评论 -
7.3.Java_代理设计模式--Spring-AOP,代理模式的特点/定义,代理模式举例买一台外星人电脑,代理模式的本质,代理模式应用如EJB技术和WebService技术
代理模式的特点:两个子类共同实现一个接口。其中一个子类负责真实业务实现,另一个子类完成辅助真实业务主题的操作。如:接口:买一套圣诞限量版Mac口红真实主题类:你代理类:代购代理模式举例:interface ISubject{ public void buyComputer();//核心功能:买电脑}//真实主题类class RealSubject implem...原创 2018-11-21 00:29:44 · 199 阅读 · 0 评论 -
7.4.Java_浅谈抽象类与接口的区别(面试)
No区别抽象类(abstract)接口(interface)1结构组成普通类+抽象方法抽象方法+全局常量2权限各种权限public3子类使用使用extends关键字继承抽象类使用implements关键字实现接口4关系一个抽象类可以实现若干个接口接口不能继承抽象类,但是接口可以使用extends关键字继承多个父接口5子类限制...原创 2018-11-21 15:26:15 · 148 阅读 · 0 评论 -
8.JavaSE之三个特殊类String、Object、包装类的常用方法以及注意点
一、String类-------java.lang.String类1.String类的两种实例化方式(1)直接赋值,自动入池。如果池中没有,则采用手工入池(本地方法):public native String intern();//直接赋值,在堆上开辟空间String str = &amp;quot;hello&amp;quot;;(2)传统方法(构造方法实例化)//通过构造方法实例化String对象String ...原创 2018-11-26 20:28:37 · 220 阅读 · 0 评论 -
《OnlineChat996》基于微信群聊的在线实时通信工具
项目源码:你和我的畅聊时光一、主要功能注册,成为我们的注册会员用户,你将拥有全网唯一的ID。登录,进入拥有千万好友的畅聊空间。私聊,你可以选择和任意在线用户进行一次亲密对话。群聊,只要你想,没有不可以。你们的团体就是一个小群组。二、具体实现1.服务器与客户端的连接服务器加载所有的配置信息,包括数据库的密码等。服务器根据Socket与客户端连接,服务器根据收到的不同类型信息...原创 2019-10-05 18:08:15 · 389 阅读 · 0 评论