自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (4)
  • 问答 (5)
  • 收藏
  • 关注

原创 Java-8-流(2)

Java-8-流(2)map如果有一个函数可以将一种类型的值转换成另外一种类型, map 操作就可以使用该函数,将一个流中的值转换成一个新的流使用 for 循环将字符串转换为大写 public static void main(String[] args) { List<String> collected = new ArrayList<>();...

2020-01-30 21:06:17 325

原创 Java-8-流(1)

Java-8-流(1)外部迭代与内部迭代Java 程序员在使用集合类时,一个通用的模式是在集合上进行迭代,然后处理返回的每一个元素在数字集合里面统计大于100的数有几个 public static void main(String[] args) { List<Integer> data = Number_Data.createData(); ...

2020-01-30 14:18:56 353

原创 Java8-Lambda

Java8-LambdaJava 8 的最大变化是引入了 Lambda 表达式——一种紧凑的、传递行为的方式引出Lambda表达式例子:使用匿名内部类将行为和按钮单击进行关联button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { ...

2020-01-29 17:21:05 306

原创 Java8笔记(7)

Java8笔记(7)函数式编程假设有这样一个系统,它不修改任何数据。维护这样的一个系统将是一个无以伦比的美梦,因为你不再会收到任何由于某些对象在某些地方修改了某个数据结构而导致的意外报告。如果一个方法既不修改它内嵌类的状态,也不修改其他对象的状态,使用 return 返回所有的计算结果,那么我们称其为纯粹的或者无副作用的更确切地讲,到底哪些因素会造成副作用呢?简而言之,副作用就是函数的效果已...

2020-01-28 20:11:17 209

原创 Java8笔记(6)

Java8笔记(6)CompletableFuture:组合式异步编程如果你的意图是实现并发,而非并行,或者你的主要目标是在同一个CPU上执行几个松耦合的任务,充分利用CPU的核,让其足够忙碌,从而最大化程序的吞吐量,那么你其实真正想做的是避免因为等待远程服务的返回,或者对数据库的查询,而阻塞线程的执行,浪费宝贵的计算资源,因为这种等待的时间很可能相当长Future 接口,尤其是它的新版实现...

2020-01-28 13:39:27 185

原创 Java8笔记(5)

Java8笔记(5)用 Optional 取代 null如何为缺失的值建模假设你需要处理下面这样的嵌套对象,这是一个拥有汽车及汽车保险的客户public class Person { private Car car; public Car getCar() { return car; }}public class Car { private Insu...

2020-01-28 10:10:23 253

原创 Java8笔记(4)

Java8笔记(4)默认方法传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改Java 8为了解决这一问题引入了一种新的...

2020-01-27 21:08:24 315

原创 Java8笔记(3)

Java8笔记(3)从匿名类到 Lambda 表达式的转换例子:创建Runnable对象的匿名类public class M1 {// 将实现单一抽象方法的匿名类转换为Lambda//表达式 public static void main(String[] args) { //传统的方式,//使用匿名类 Runnable runnab...

2020-01-27 17:19:52 275

原创 Java8笔记(2)

Java8笔记(2)用流收集数据收集器函数式编程相对于指令式编程的一个主要优势:你只需指出希望的结果——“做什么”,而不用操心执行的步骤——“如何做”收集器用作高级归约收集器非常有用,因为用它可以简洁而灵活地定义 collect 用来生成结果集合的标准。更具体地说,对流调用collect 方法将对流中的元素触发一个归约操作(由 Collector 来参数化)一般来说, Collecto...

2020-01-27 15:59:02 327

原创 Java8笔记(1)

Java8笔记(1)流流是什么流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。你可以把它们看成遍历数据集的高级迭代器。用到的数据例子:Dish 类public class Dish { private final String name; private final boolean vegetarian...

2020-01-26 20:11:38 465

原创 Java多线程(10)

Java多线程(10)非阻塞队列ConcurrentHashMapHashMap在多线程条件下的不安全性:public class MyService { public HashMap map = new HashMap();}public class Thread_1 extends Thread{ private MyService myService;...

2020-01-23 21:59:37 1135

原创 Java多线程(9)

Java多线程(9)AQS(2)锁的占有与释放对于AQS来说,线程同步的关键是对状态值state进行操作,根据state是否属于一个线程,操作state的方式分为独占方式和共享方式独占方式下获取和释放资源使用的方法为: public final void acquire(int arg) { if (!tryAcquire(arg) && ...

2020-01-22 17:55:00 147

原创 Java多线程(8)

Java多线程(8)AQSAbstractQueuedSynchronized(AQS),类如其名,抽象的队列式的同步器,AQS定义了套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch…双向队列Node节点AQS是一个FIFO的双向队列,其内部通过节点head和tail记录队首和队尾元素,对列元...

2020-01-21 21:57:59 887

原创 Java多线程(7)

Java多线程(7)CountDownLatchCountDownLatch是一个同步辅助工具,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成构造函数CountDownLatch(int count)构造一个以给定计数 CountDownLatch CountDownLatch。方法void await()导致当前线程等到锁存器计数到零,除非线程是 interr...

2020-01-20 11:56:44 222

原创 Java多线程(6)

Java多线程(6)七种单例设计模式的设计饿汉式public class Singleton {// 实例变量 private byte[] data = new byte[1024];// 定义实例对象的时候直接初始化 private static Singleton instance = new Singleton();// 私有构造函数 ...

2020-01-19 17:40:37 163

原创 Java多线程(5)

Java多线程(5)CPU缓存一致性问题因为缓存的出现,极大提高了CPU的吞吐能力,但同时也引入了缓存不一致的问题,比如i++操作在程序运行过程,首先将主存中的数据复制一份存放到CPU Cache中,那么CPU寄存器进行数值计算的时候就直接到Cache中读取和写入,当整个运算过程完毕之后再讲Cache中的数据刷新到主存当中具体如下:读取主内存的i到cpu cache对i进行+1...

2020-01-19 16:47:09 216

原创 Java多线程(4)

Java多线程(4)Lock的使用synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问;Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手...

2020-01-19 11:16:34 169

原创 Java多线程(3)

Java多线程(3)Java内存模型并发编程的问题为了保证数据的安全,需要满足以下三个特性:原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。有序性即程序执行的顺序按照代码的先后顺序执行。为了保证共享内存的正确性(可见...

2020-01-18 20:36:10 166

原创 Java多线程(2)

Java多线程(2)线程间的通信线程间的通信又称为进程内通信,多个线程实现互斥访问共享资源时会互相发送信号或等待信号等待通知机制厨师与服务员的交互在桌子上:厨师做完一道菜的时间不确定,所以厨师将菜放到桌子上的时间也不确定服务员取到菜的时间取决于厨师,所以服务员有“等待”的状态服务员怎么能拿到菜?取决于厨师,厨师将菜放到桌子上,就相当于通知服务员拿菜了这个过程就体现了...

2020-01-18 10:59:31 238

原创 Java多线程(1)

Java多线程(1)线程的世界何为线程通俗来说计算机中的每一个任务就是一个进程,而在每一个进程内部至少有一个线程,线程是进程中的一个实体,进程中的多个线程共享进程的资源。线程是程序执行的一个路径,每一个线程都有自己的局部变量表、程序计数器以及自己的生命周期创建线程Java有三种创建线程的方式实现Runnable接口继承Thread类使用FutureTask第一种...

2020-01-17 20:15:42 168

原创 Java类加载与反射

Java类加载与反射类加载、连接、初始化JVM和类当运行某个Java程序时,将会启动一个Java虚拟机进程,不管Java程序里面多么复杂,都处于该Java虚拟机进程里面。当Java程序运行结束,JVM进程结束,该进程在内存中的状态将丢失public class A { // 定义该类的类变量 public static int a = 6; }接下来...

2020-01-16 16:34:32 225

原创 Java集合总结

Java集合总结概述Java集合类主要由两个接口派生而出:CollectionMap这两个是Java集合框架的根接口Collection与Iterator接口Collection是List、Set、Queue的父接口来看看具体使用:public class CollectionTest { public static void main(String[] a...

2020-01-16 11:19:06 219

原创 Java泛型总结

Java泛型总结泛型使用从Java5开始引入了“参数化类型”的概念,允许在创建集合的时候指定集合元素的类型public class GenericList { public static void main(String[] args) { // 创建一个只想保存字符串的List集合 List<String> strList =...

2020-01-15 22:15:16 799

原创 Java-内部类

Java-内部类有时可以把一个类放在另一个类的内部定义,这个定义在其他类内部的类就是内部类,包含内部类的类被称为外部类内部类的作用:内部类提供了更好的封装,可以把内部类隐藏在外部类之内内部类成员可以直接访问外部类的私有数据,但外部类不能访问内部类的实现细节,比如内部类的成员变量匿名内部类可以用于创建只需要使用一次的类内部类比外部类可以多使用三个修饰符:private,p...

2020-01-15 17:55:23 122

原创 Java-接口与抽象类

Java-接口与抽象类抽象类如果编写一个类时,我们只想为该类定义一些方法,但是具体的实现交给继承它的子类来实现的话,我们可以考虑使用抽象类抽象方法与抽象类抽象方法与抽象类都必须使用abstract来修饰有抽象方法的类只能被定义为抽象类抽象类里面可以没有抽象方法规则:抽象方法与抽象类都必须使用abstract来修饰,抽象方法不能有方法体抽象类不能实例化抽象...

2020-01-15 09:31:50 387

原创 Java-Final关键字

Java-Final关键字Final成员变量final修饰的成员变量必须由程序员显式的指定初始值final修饰的类变量:静态初始块中指定初始值或者声明该变量时指定初始值而且只能在两个地方的其中之一指定final修饰的实例变量:非静态初始块,声明该实例变量或构造函数中指定初始值只能在三个中的一个指定实例变量不能在静态初始块中指定初始值,因为静态初始块是静态成...

2020-01-15 09:30:51 224 1

原创 Java多态

Java多态编译时类型和运行时类型理解编译时类型和运行时类型是理解多态的关键上最直白的定义:Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定这边搬出大佬的解释:Person p=new Women()(Women类继承自Person类)那么,假如p的属性修饰符为public 访问属性时得到的是...

2020-01-14 19:56:33 116

原创 Java继承

Java继承类 超类 子类已存在的类称为超类( superclass )、基类 ( base class ) 或父类 ( parent class ) ; 新类称为子类 ( subclass )、派生类( derived class ) 或孩子类 ( child class )Java通过extends关键字来实现继承基本语法:访问修饰符 class SubClass extends ...

2020-01-14 15:48:54 187

原创 Java构造函数

Java构造函数构造函数构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化构造函数的规则:构造函数与类同名每个类可以有一个以上的构造函数构造函数可以有0 个 、 1 个或多个参数构造函数没有返回值构造函数总是伴随着new操作一起调用看一个Employee类例子:public class Employee ...

2020-01-14 10:22:31 644

原创 Java编程思想---枚举类型

Java编程思想—枚举类型基本enum特性调用enum的values()方法,可以遍历enum实例,values方法返回enum实例数组,而且该数组中的元素严格保持在enum中声明时的顺序public enum Shrubbery { GROUND, CRAWLING, HANGING}public class EnumClass { public...

2020-01-12 20:43:52 461 1

原创 Java编程思想---容器

Java编程思想—容器填充容器public class StringAddress { private String string; public StringAddress(String string) { this.string = string; } @Override public String toString() { ...

2020-01-12 10:47:49 280

原创 Java编程思想—泛型(2)

Java编程思想—泛型(2)类型擦除先上例子:public class ErasedTypeEquivalence { public static void main(String[] args) { Class c1 = new ArrayList<String>().getClass(); Class c2 = new ArrayL...

2020-01-09 10:42:17 171

原创 Java编程思想—泛型(1)

Java编程思想—泛型(1)泛型简单使用三个Holder进行对比,引出类型参数的概念public class Apple {}public class Holder_1 {// 明确指定持有的对象 private Apple apple; public Holder_1(Apple apple) { this.apple = apple;...

2020-01-07 18:38:29 171

原创 Java编程思想学习笔记(15)

Java编程思想学习笔记(15)泛型一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用千多种类型的代码,这种刻板的限制对代码的束缚就会很大。为了解决这个问题,JDK 5中引入了一个新特性—泛型(generics),泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型。使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再...

2020-01-06 16:28:41 283

原创 Java编程思想学习笔记(14)

Java编程思想学习笔记(14)类型信息这章学习如何在运行时识别对象和类的信息的.主要有两种方式:一种是传统的RTTI它假定我们在编译时已经知道了所有的类型.另一种是反射机制它允许我们在运行时发现和使用类的信息.为什么需要RTTI(Run-Time Type Information)例子:abstract class Shape {void draw() { Sys...

2020-01-05 19:48:41 252

原创 Java编程思想学习笔记(13)

Java编程思想学习笔记(13)字符串不可变StringString对象是不可变的。查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的 String对象则丝亳未动。public class Immutable { public static String upcase(...

2020-01-04 14:38:07 262

原创 Java编程思想学习笔记(12)

Java编程思想学习笔记(12)异常Java的基本理念是“结构不佳的代码不能运行”。发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源能通过某种方式,把适当的信息传递给某个接收者一-该接收者将知道如何正确处理这个问题。改进的错误恢复机制是提供代码健壮性的最强有力的方式。错误恢复在我们所编写的每一个程序...

2020-01-04 14:37:29 208

原创 机器学习实战:基于Scikit-Learn和TensorFlow—第五章笔记

机器学习实战:基于Scikit-Learn和TensorFlow—第五章笔记支持向量机支持向量机(简称SVM)是一个功能强大并且全面的机器学习模型,它能够执行线性或非线性分类、回归,甚至是异常值检测任务。线性SVM分类选取鸢尾花数据集作为实验数据from sklearn import datasetsiris = datasets.load_iris()X = iris["dat...

2020-01-03 14:21:16 559

原创 Java编程思想学习笔记(11)

Java编程思想学习笔记(11)持有对象通常,程序总是根据运行时才知道的某些条件去创建新对象,在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的问题,需要在任意时刻和任意位置创建任意数量的对象,所以就不能依靠创建命名的引用来持有每一个对象:如 MyType aReference;因为你实际上不知道需要多少个这样的引用。大多数语言都提供某种方法来解决这个基本问题。Ja...

2020-01-03 13:11:30 300

原创 Java编程思想学习笔记(10)

Java编程思想学习笔记(10)内部类可以将一个类的定义放在另一个类的定义内部,这就是内部类。创建内部类例子:public class Outer { class Inner_1{ private int i = 1; public int value(){ return i; } } ...

2020-01-01 16:36:40 163

Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

2017-08-02

Node.js+Express+MongoDB实现简单登录注册功能

Node.js+Express+MongoDB实现简单登录注册功能,压缩包中包含了所需模块,直接可以用

2017-07-18

基于Netty的GUI版聊天室

基于Netty实现的简单多人用户聊天室,带有GUI。

2017-06-12

Spring+SpringMVC+Hiberate+MySql+BootStrap实现一个简易的用户管理后台

2017-04-13

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

TA关注的人

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