自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式-观察者模式

1.概述观察者设计模式,也称发布订阅模式;被观察者(发布者)发布信息,观察者(订阅者)订阅后就会收到消息该模式涉及四个角色:抽象被观察角色具体被观察角色抽象观察角色具体观察角色示例:package StudyJava;public interface Observerable { // 发布者需要实现几个功能:订阅者注册,订阅者移除,...

2019-10-12 15:34:47 114

原创 设计模式-工厂设计模式

1.目标用于实例化有共同接口的类,由工厂模式动态去实例化所需要的类三种基本形态:1.简单工厂2.工厂方法3.抽象工厂2.简单工厂存在一个静态方法用于接收参数,根据传入的参数去返回实现同一接口不同类的某个类的实例// 产品接口public interface product{}// 产品实现同一接口pubic class washer implem...

2019-10-12 14:16:39 138

原创 设计模式-策略设计模式

1.策略印象第一次接触策略设计模式时,对接口的强大功能和开发设计模式都不是很熟悉,在逐步学习和代码量的积累后,开始明白设计模式和算法在程序开发过程中的独特魅力。2.策略的设计思路针对实现功能的一组算法,将她们封装到具有共同接口的独立的类中;通过这种方式,实现了在不改变客户端(需要使用相关算法的代码)的情况下,动态改变功能;同时,整个设计突出封装变化和面向接口编程。...

2019-10-10 14:39:58 138

原创 设计模式-模板设计模式

1.从Thread线程的创建说起 在学习多线程的过程中不难发现,我们创建线程的过程是将逻辑代码写在线程的run()方法中,再由线程去调用start()方法去在JVM中去真正创建一个线程;线程的创建有自己的算法结构,start()方法中也包含了启动线程所需的相关代码,但线程本身并不知道开发者需要实现的具体逻辑功能是什么,因此她仅仅提供算法结构和基本的算法逻辑代码,而将使用者需要实现的具...

2019-10-10 10:17:12 109

原创 Java对象比较-comparable接口和comparator比较器

1.实现对对象的比较大部分是为了对数组或者集合中的对象进行排序,让他们根据一定的规则存储在数组或有序集合中2.实现方式有两种,一种是存储的对象的类实现comparable接口,第二种是使用comparator比较器,也有人称为comparator匿名内部类;两种方式都是通过给对象提供一个自定义的比较规则去实现对象之间的比较3.首先了解一下比较规则程序实现比较的核心是编写比较规则...

2019-10-09 13:30:29 310

原创 Java巩固提高复习-入职浩鲸科技自我学习篇-方法参数

关于方法参数1.程序设计语言的参数传递分为按值调用:方法接收的是调用者提供的值; 按引用调用 :方法接收的是调用者提供的变量地址2. 值得注意的事情:java设计语言总是按值调用 ,也就是方法得到的是参数值得一个拷贝,方法不能修改传递给它的任何参数变量的内容 3.常见情况:方法参数有两种类型 基本数据类型和对象引用基本数据类型 : 方法调用将不会改变基本...

2019-07-09 00:35:58 856

原创 mybatis再学习三

1.mybatis中使用resultType接收返回的结果集,这时有自动的映射当我们需要去接收种类较多,复杂情况的结果集时,就需要使用resultMap<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http...

2018-12-01 16:58:29 89

原创 Mybatis框架再学习二

上次的内容主要是mybatis的大概介绍和简单使用,这次对mybatis中最为重要的映射器的开发进行学习,映射器的开发组成占整个mybatis开发的百分之八十。对于简单的映射关系,不再重复 1.在映射中传递多个参数开发中所需要传递的查询条件很可能不止一个,因此就会涉及怎么去传入多个parametertype 方法1:使用map接口(可读性差,不推荐)//在上一次的...

2018-11-30 18:25:58 90

原创 Mybatis框架的再次学习一

经过了之前对SSM框架的初步学习,学会了框架的简单而又基本的使用。显然这并不够,时间长了连基础的使用也会遗忘,因此我希望结合SSM框架书籍对这些再次学习,深入去理解以前所学的知识。 1.Mybatis是一个java技术的持久层框架,是用于对数据库的操作持久层是什么,数据库系统就是一个持久层,将业务的数据保存到磁盘,具备长期存储的能力,java就可以用mybatis去更好的实...

2018-11-30 17:04:56 258

原创 Maven基础学习

1.概述maven是基于java平台的自动化构建工具,即将(java,jsp,html...)去转变成产品(可发布的项目)作用:a.管理jar包             增加第三方jar包              管理jar包之间的依赖关系,自动下载关联依赖包b.将你的项目分成若干个模块功能:清理      删除编译的结果,为重新编译做准备,即target中的内容...

2018-11-28 14:50:01 92

原创 数据结构与算法-堆排序

1.堆排序,使用了顺序二叉树的相关原理思路:从第一个非子叶节点开始遍历,目标是实现大顶堆,然后把顶与顺序遍历的最后一个元素交换然后依次交换至数组的第一个元素,实现排序package math;import java.util.Arrays;public class heapsort { public static void main(String[] args) { ...

2018-11-26 21:53:44 119

原创 数据结构与算法-二叉树

1.普通二叉树treenodepackage math;public class TreeNode { private int data ; private TreeNode lchild ; private TreeNode rchild ; public int getData() { return data; } public void...

2018-11-26 21:50:45 93

原创 数据结构与算法-常用排序算法(2)

5.归并排序归并的思想理解:对两个有序的数组, 例如 1,3,5,7 和2,4,6,8,10这样两个数组,可以合并为一个数组通过遍历两个数组再进行比较,把比较结果依次加入用于存储合并后的临时数组 在具体的实现时,相当于帮一个数组无限划分为两份,直到左右各为一份,此时左右是有序的,排序后合并,让之后的每次操作都满足左右有序,利用递归去完成归并 package mat...

2018-11-22 20:36:24 82

原创 数据结构与算法-常用排序(1)

交换排序的两种:1.冒泡排序基于从前往后遍历,比较前后的两个,然后根据比较情况决定交换与否package math;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int[] arr = new int[]{4,7,2,3,...

2018-11-22 19:10:25 82

原创 数据结构与算法-递归

递归 有结束条件方法调用自己本身 eq:波非那切数列package math;public class bfnq { public static void main(String[] args) { System.out.println(new bfnq().bfnq(7)); } public int bfnq(int index){ ...

2018-11-20 19:47:31 231

原创 数据结构与算法-链表(1)

1.单链表链表的形成基于节点,和指向下一个节点的索引package math;public class Node { private int data ; private Node nextNode ; public Node(int data){ this.data = data ; } public int getData() { ret...

2018-11-20 18:52:51 99

原创 数据结构与算法-栈和队列数组实现

1.栈 先进后出package math;public class arraystack { private int[] elements = new int[0]; //入栈 public void push(int k){ int[] newarr = new int[elements.length+1]; for(int i = 0 ; i<el...

2018-11-20 17:47:52 96

原创 数据结构与算法-查找算法

1.线性查找,从头到尾去遍历,找到符合的则返回2.二分法查找 前提:目标数组有序package math;public class dichotomy { public static void main(String[] args) { int[] arr = new int[]{2,5,7,8,9}; int k =new dichotomy().show(a...

2018-11-20 17:08:18 123

原创 数据结构与算法-数组

1.数组添加数据数组在使用时会给定具体长度,如果需要添加数据,考虑解决数组的长度不可变的问题 思想:创建一个新的数组,大小比原长度大1 ,将原数组中的内容复制一份到新数组,把要添加的数据加入,最后把这个数组替换原数组。package math;import java.util.Arrays;public class array { public static vo...

2018-11-20 16:39:04 83

原创 数据结构与算法 java实现 概述

     从开始接触算法,到现在给我感受最深的是算法为我们的程序注入了灵魂,好的算法有着清晰的思路,充满想象力的方式,通过数学手段结合编程语言从而去实现复杂的功能。在java开发中数据的存储和使用涉及数据结构,不同的数据结构都有着同一个目的,去减少我们获取的存储数据的时间,针对不同的情况使用不同的数据结构可以极大地提高效率。      而算法作为一门类似于数学科学的学科,将其应用于编程,需要对...

2018-11-20 15:38:11 284

原创 Java多线程学习(九)

线程组和线程池的初步了解1.线程组threadgroup 可以对一批线程进行分类管理,java允许程序直接对线程进行控制,在默认情况下所有的线程都属于主线程public class lock { public static void main(String[] args) { ThreadGroup tg = new ThreadGroup("我是线程组"); ...

2018-09-21 23:01:45 102

原创 Java多线程学习(八)

互斥锁Java 提供了两种互斥锁用来解决在共享资源时存在的并发问题一种方式是提供synchronized 关键字,当任务要执行被synchronized 关键字保护的代码片段的时候,它会检查所可用,然后获取锁,执行代码,释放锁。第二种就是互斥锁,它属于reentrantlock类它的lock(获取锁)与unlock(释放锁)的方法也可以实现同步reentrantlock r =...

2018-09-21 22:43:20 97

原创 Map集合HashMap双层嵌套

HashMappublic class hashmapinside { public static void main(String[] args) { HashMap<student,Integer> map1 = new HashMap<>(); map1.put(new student("胡博士", 19), 1); map1.put(ne...

2018-09-17 15:36:29 1229

原创 Map集合的学习案例

案例:输入字符串,输出其中包含的字符和它们的个数例如:aaabbbccc代码:public class stringnumber { public static void main(String[] args) { //实现输入一个字符串,判断其中出现的字符和其个数 System.out.println("输入字符串:"); Scanner sc = new Sca...

2018-09-17 15:19:30 385

原创 Java的private关键字

private关键字可以修饰成员变量和成员方法被其修饰的成员只能在本类中被访问应用:在定义类时给成员变量赋值private,并提供get和set方法用于外部访问,这样可以提高数据的安全性public class pritry { private int age ; private String name ; public int getAge() { return age...

2018-09-16 18:56:40 11849

原创 Java内部类(一)

内部类在类中定义类内部类的访问特点:a.内部类可以直接访问外部类的成员,包括私有b.外部类要访问内部类的成员,必须创建对象public class book { String k = "外部"; book.mybook a = new book.mybook();//外部类名.内部类名 对象名 = new 外部类名.内部类名(); public void r...

2018-09-16 18:34:33 85

原创 Java抽象类与接口(一)

抽象类抽象就是看不懂的1.特点:a.抽象类与抽象方法须用abstract关键字修饰b.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或接口c.抽象类不能被实例化,作为子类的模板或者超类出现d.抽象类的子类要么是抽象类,要么重写抽象类中的所有抽象方法抽象类的成员特点a.成员变量 既可以是变量,也可以是常量,但abstract不能修饰成员变量b. 构造方法 有...

2018-09-16 17:14:03 91

原创 Java继承复习(一)

继承继承中成员变量的关系,依据就近原则,子类中有该成员变量时,使用子类的,没有则使用父类的;继承中的成员方法:a.不同名方法b.同名方法:优先会使子类的方法(重写/覆盖)关于方法的重写:子父类出现了一模一样的方法应用:当子类需要父类的功能,而功能主体子类有自己的特有内容,可以重写父类中的方法注意:父类中的私有方法无法被重写子类重写的父类方法,访问权限不能更低...

2018-09-16 16:46:03 135

原创 Java中的final关键字学习(一)

final关键字1.修饰类,类无法被继承但是要注意被final修饰类中的所有成员方法都会被隐式地指定为final方法 2.修饰方法,此方法就无法被重写注:类的private方法会隐式地被指定为final方法3.修饰变量  变量就成了常量,只能被赋值一次对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其...

2018-09-16 16:17:05 162

原创 Java的static关键字学习(一)

static关键字基本作用简言之就是:方便在没有创建对象的情况下来进行调用(方法/变量)被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问(1)static方法“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static...

2018-09-16 15:58:27 108

原创 Java反射机制学习(一)

1.反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.2.获取class...

2018-09-11 12:31:41 749

原创 Java多线程学习(七)

两个线程间通信1.什么时候需要通信多线程并发执行时,在默认情况下CPU是随机切换线程,如果我们希望他们有规律执行,需要使用通信2.怎么通信希望线程等待用wait()唤醒等待的线程用notify()这两个方法必须在同步代码块中执行,且使用对象锁来调用package javastudy01;public class notify { public static v...

2018-09-10 18:31:29 126

原创 Java多线程学习(六)

多线程的单例设计模式目标:保证类在内存中只有一个对象实现方法:1.控制类的创建,不让其他类创建本类的对象 private2.在本类中定义一个本类的对象 singleton s3.提供公共的访问方式Public static singleton getInstance(){return s}单例写法:(1)饿汉式package javastudy01;publi...

2018-09-10 17:51:54 111

原创 Java多线程学习(五)

死锁(Deadlock)多线程同步时,如果同步代码嵌套,使用相同锁,会出现死锁package javastudy01;public class Deadlock extends Thread { private static String s1 = "1"; private static String s2 = "2"; public static void mai...

2018-09-10 16:48:33 128

原创 Java多线程学习(四)

线程安全问题讨论1.多线程并发操作同一数据时,就可能出现线程安全问题2.使用同步技术解决,把操作数据的代码进行同步,不要多线程一起操作案例:铁路售票,一共100张票,四个窗口进行售票问题案例:package javastudy01;public class saleticket extends Thread{ //问题1 //private int ticke...

2018-09-10 16:23:58 183

原创 Java多线程学习(三)

1.多线程同步代码块1.什么情况下需要同步(1)当多线程并发,有多段代码同时执行时,希望某一段代码执行过程中CPU不切换到其他的线程上工作,此时需要同步(2)如果两段代码是同步的,那么同一时间只能执行一段代码,在一段代码执行完成前,CPU不会去执行另一段代码2.同步代码块使用synchronized关键字加上一个锁对象来定义一段代码,多个同步代码块如果使用相同的锁对象,那么他们...

2018-09-10 14:40:25 148

原创 Java多线程学习(二)

1.线程的一些常用方法package javastudy01;class MyThread extends Thread { //重写Run方法 public void run(){ //1.获取当前线程的名字 System.out.println(this.getName()+"我是一个线程."); } public static void ma...

2018-09-10 12:12:56 867

原创 Java多线程学习(一)

1.线程的理解   线程是程序执行的一条路径,一个进程可以包含多条线程   多线程并发执行可以提高效率2.多线程原理同一时间内,CPU只能处理1条线程,只有1条线程在工作(执行);多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。思考:如果线程非常非常多,会发生什么情况?CPU会在N多线程之间...

2018-09-10 11:14:28 280 1

空空如也

空空如也

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

TA关注的人

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