自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Java丨JVM虚拟机与类加载器

一丶JVM 虚拟机介绍;Sun HotSpot VM这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies” 的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Strongtalk VM,而这款虚拟机中相当多的技术又是来源于一款支 持Self语言实现“达到C语言50%以上的执行效率”的目标而设计的虚...

2019-09-16 19:57:29 208

原创 Java丨继承丨总结

继承(extends);继承是发生在多个类之间 继承使用关键字extends JAVA只能单继承,允许多层继承 被继承的类叫父类(超类),继承父类的类叫子类(派生类) 在父类中的非私有属性和方法可以被子类继承 protected (受保护的访问权限修饰符),修饰的属性或方法可以被子类继承 构造方法不能被继承 创建对象会调用构造方法,调用构造方法不-定就是创建对象 实例化子类对象...

2019-09-11 22:56:42 174 1

原创 Java丨排序算法丨选择排序

选择排序算法每一趟从待排序的数据元素中选出毫小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。优点:一轮比较只需要换一次位置。缺点:效率慢,不稳定。Demo;public class XuanZe { public static void main(String[] args) { ...

2019-09-10 23:38:13 122

原创 Java丨排序算法丨插入排序

插入排序算法;(从后向前找到合适位置后插入)基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。优点:稳定,快;缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决 这个问题。Demo;public class ChaRu { p...

2019-09-09 23:31:51 151

原创 Java丨排序算法丨冒泡排序

冒泡排序算法;冒泡排序算法的运作如下,(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点, 最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。...

2019-09-08 23:28:22 96

原创 Java丨AOP

一、什么是AOP?AOP的概念: Aspect Oriented Programming (面向切面编程)AOP是OOP (Object Oriented Programming,面向对象编程)的补充和完善,利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到-一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务...

2019-09-07 21:36:08 112

原创 Java丨模板方法、装饰者、观察者丨我个人对三种设计模式的理解

观察者模式的理解在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。生活中比如WIFI,一改密码所有终端就没网了,密码正确之后就可以上网了,还比如天气预报,你定位你所在的城市才会给你 提供你所在城市的天气情况。装饰者模式的理解,并用现实生活中的事情来举个例子装饰者模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多...

2019-09-07 00:50:01 117

原创 Java丨设计模式丨模板方法、装饰者、观察者

一丶模板方法模式模板方法模式(Templete Method) :定义一个操作中的算法的骨架,而将一- 些可变部分的实现延迟到子类中。模版方法模式使得子类可以不改变-一个算法的结构即可重新定义该算法的某些特定的步骤。生活中的模板的示例:1、.上非诚勿扰找对象(报名、节目组筛选、.上节目、 去约会)2、煎饼果子制作模板,就是先定义好一-些步骤,把步骤的具体实现由具体的特定的对象...

2019-09-05 22:19:14 138

原创 Java丨策略模式丨模拟充值Q币

场景:当我们冲q币的时候会员是97折,超级会员是92折。使用策略设计模式实现。Demo:package Recharge;import java.util.Scanner;public class RechargeQB { public static void main(String[] args) { ChongZhi user=new Recharge...

2019-09-04 15:51:43 958

原创 Java丨工厂模式丨简单计算器功能的实现

话不多话,直接上代码;package Calculation;import java.util.Scanner;//main class CalculationDemo{ public static void main(String[] args) { System.out.println("输入第一个数:"); Scanner scanne...

2019-09-03 21:39:47 559

原创 Java丨设计模式丨静态代理、动态代理、适配器

一、静态代理模式代理模式(Proxy) :为其他对象提供-种代理以控制对这个对象的访问。代理模式说白了就是“真实对象”的代表,在访问对象时引入- -定程度的间接性,因为这种间接性可以附加多种用途。生活中,代理无处不在:1、代理销售2、代理记账3、代理找对象(百合网、珍爱网)4、代理找房子(中介)等等...我们来看这样一个场景:操作员查询销售订单功能,为了提高查询性能,我...

2019-09-02 22:41:31 342

原创 Java丨单例设计模式面试题丨饿汉式和懒汉式各自特点

饿汉式;/** * 单例设计模式之饿汉式 * 实现; * 1 定义一个私有的构造方法 * 2 提供一个本类的对象的引用(静态) * 3 提供一个获取本类对象的引用的方法 * 特点; * 在实例声明时就创建对象,生命周期长,占内存长,调用时效率高 */public class Singleton01 { private static Singleto...

2019-09-01 21:30:31 963

原创 Java丨面试题丨overloading和overriding的区别?

overloading和overriding的区别?overloading:方法的重载,发生在同一类中,方法名相同,参数列表不同,返回值无关。overriding:方法的重写,发生在子父类中,方法名相同,返回值相同,子类的访问修饰符要大于或等于父类的访问修饰符,子类的异常声明必须小于或等于父类的异常声明。如果方法被private,static,final修饰,那么不能被重写。...

2019-08-31 23:15:52 395

原创 Java丨单例、策略、工厂设计模式

设计模式( Design pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一-段时间的试验和错误总结出来的。设计模式是软件开发中的精髓,掌握设计模式,在解决某些常见问题时,让我们有了相对固定的思路一、单例设计模式单例模式( Singleton) :是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单...

2019-08-31 23:11:09 545

原创 Java丨IO流之字节流

1、IO流概述;IO流:输入输出流(Input/Output)流是一组有顺序的,有起点和终点的字节集合,I是对数据传输的总称或抽象。即数据在两设备间的传输称为流流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类;根据处理数据类型的不同分为。字符流和字节流根据数据流向不同分为:输入流和输出流PS:把一个数据从程序写到文件里就是 输出流,为...

2019-08-30 22:15:09 548

原创 Java丨即时聊天程序的实现

继续昨天的代码丨多客户端通信实现想要建立多客户端即时通信,必须具有这几个条件(类);1、客户端;2、服务器;3、消息类(数据封包);4、消息类型。Demo;package Task.demo;import java.io.Serializable;public class Message implements Serializable { ...

2019-08-29 23:08:08 4593 1

原创 Java丨即时聊天简易版

一、网络通信的三大核心网络编程Socket是网络驱动层提供给应用程序编程的接口和一种机制。TCP/IP:传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。IP地址:网络中每台计算机的一个标识号,本地IP: 127.0.0.1 localhost端口号...

2019-08-28 23:08:17 748

原创 Java丨生产者与消费者模式 经典面试题

继续昨天遗留的问题:1、生产者消费者模型的作用是什么2、sleep方 法和wait方法有什么区别3、如何在两个线程之间共享数据4、为什么wait()方法和notify()/notifyAl()方法要在同步块中被调用5、wait()方法和notify()/notifAIl()方法在放弃对象监视器时有什么区别.6、Thread.sleep(0)的作用是什么 生产者消费者模型的作用...

2019-08-27 22:08:15 1208

原创 Java丨生产者与消费者实现原理

一、多线程的关键点回顾1、什么是进程程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的- -次执行过程,它是一个动态的概念。进程是一个具有一定独立功能的程序,一个实体,每一个进程都有它自己的地址空间。2、进程的状态:进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程具有以下三种基本状态。1)就绪状态(Ready)2)...

2019-08-26 22:27:02 1011

原创 Java丨HashMap面试必问题

HashMap原理及使用场景解析1、为什么用HashMap?HashMap是一个散列桶(数组和链表) , 它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快HashMap可以接受null键和值,而Hashtable则不能(...

2019-08-25 22:28:35 203

原创 Java丨HashMap源码分析与哈希表实现原理

一、HashMap应用与面试题 HashMap用什么数据结构实现的? HashMap的put过程是? HashMap初始化传入的容量参数的值就是HashMap实际分配的空间么? HashMap扩容机制是什么,什么时候扩,每次扩多少? JDK1. 8的HashMap实现较之前版本有什么不同? 加载因子是什么? HashMap有什么缺点...

2019-08-24 22:58:30 415

原创 Java丨经典面试题丨最快速度计算8x4结果?

如题,如何以最快速度计算8*4的结果?答:使用位移的方法时最快的。关于位移运算符;左移: "a<<b; “将二进制形式的a逐位左移b位,最低位空出的b位补0带符号右移: "a>>b; "将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位无符号右移: "a>>>b;"将 二进制形式的a逐位右移b位,最高位空出的b位补0实例;...

2019-08-23 22:35:41 528

原创 Java二叉树数据结构习题

Demo 1;设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列。图解:前序的遍历结果是:ABDEC【前序遍历特点 中间>左边>右边】中序的遍历结果是:DBEAC【中序遍历特点 左边>中间>右边】后序的遍历结果是:DEBCA【后序遍历特点 左边>右边>中间】De...

2019-08-22 11:15:15 1322

原创 Java二叉树数据结构原理

一、二叉树的基本概率什么是二叉树?二叉树(Binary Tree)是树类应用最广泛的一种数据结构,也是非线性数据结构,顾名思义,二叉树的每个节点最多只能包含两个孩子节点,一个节点可以包含0个,1个,2个孩子,如果是两个孩子,也就是通常我们说的左孩子和右孩子,通常子树被称作“左子树”和“右子树”。我想说的:树结构对于初学者来说很容易绕晕,正因为如此,二叉树的原理也被很多企业在招聘Jav...

2019-08-21 22:05:43 1150

原创 Java链表的数据结构实战

Demo:请自己定义一个链表结构,并进行数值插入,例如 1-99。代码如下:package Tasks;/** * * @author 破茧化蝶YL * 2019年 8月 20日 * 下午 1:33:21 */public class Task3 { public static void main(String[] args) { Linked...

2019-08-20 22:37:05 382

原创 Java链表的数据结构和实现原理

链表:一种常见的基础数据结构,是一种线性表,但不会按线性存储数据,而是在每个节点里存到是下一个节点的指针(Pointer)。PS:递归算法;是一种直接或间接调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁且易于理解。没有用递归算法的阶乘实现:用递归算法的阶乘实现:图解:递归算法执行时,内存的结构:每次方...

2019-08-19 23:44:58 773

原创 Java动态数组的使用

Demo;从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。 样例输入: 5; 3 4 0 0 2 输出:9 1 样例输入: 7; 3 2 7 5 2 9 1 输出:29 4先理清思路步骤;1...

2019-08-18 15:11:26 669

原创 Java动态数组原理分析

一、数组的原理和特点;数组:一组能够存储相同数据类型的变量的集合。当我们有一组相同类型的数据需要存储,如果此时使用单个变量,我们需要定义N个变量,这样做的话会非常繁琐且不利于后期代码的维护。特点:1、数组是可以保存一组相同数据类型的一种数据结构2、定义一个数组必须有固定的长度,且不能修改长度3、数组拥有边界检查,尝试获取不在数组范围内的值时,会出现数组下标越界异常(Arra...

2019-08-17 23:58:37 737

原创 Java中File类的使用

File类的操作方法Demo1;1、创建文件或文件夹2、判断文件或文件夹是否存在3、判断是否为文件或文件夹4、删除文件或文件夹import java.io.File;import java.io.IOException;/* * File类的使用 */public class FileDemo { public static void main(Strin...

2019-08-17 16:10:32 340

原创 Java多维数组求每行最大值

/** 多维数组求每行最大值*/import java.util.Arrays;public class ArraysDemo{ public static void main(String[] args) { //创建一个多维数组并赋值 int[][] arr = {{7,6,48,108,85},{1,7,66,545,78,56}}...

2019-08-16 14:36:25 1265

原创 Java生成不重复随机数

**如题;关于生成不重复随机数算法的应用场景:**1、考试系统中生成不重复试题的算法及程序设计;2、一种随机的音乐播放列表;3、随机抽样模型;4、工作人员随机分配工作地点;5、接单系统随机分配满足条件的多条匹配路线;6、非诚勿扰随机抽取嘉宾入场顺序;7、分布式系统随机分配符合条件的请求处理服务器;… …代码实战及原理分析;*使用随机不重复算法,实现一个车牌摇号器, 本期参与...

2019-08-15 21:58:29 7494 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除