
Java
文章平均质量分 92
CN_Seagull
这个作者很懒,什么都没留下…
展开
-
Java8新特性——Stream流看这一篇就行辣
作为Java8添加的一个新特性,Stream流提供了一种声明的方式来处理数据。其基于函数式编程思想,将复杂的语句代码通过简洁的方法调用来表示,让程序员写出的代码更加的高效、简洁并具备可读性。原创 2022-03-24 15:37:15 · 1597 阅读 · 0 评论 -
剑指Offer之每日五道算法题(Java)——第三天
面试题08问题描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。牛客网——二叉树的下一个节点测试用例实现思路先总结出所有可能发生的情况,再根据这些情况来写代码,中序遍历下一节点所有情况如下:节点存在右子树:节点的右孩子存在左子树:则沿着右孩子的左指针一路遍历下去到叶子节点,就是我们要找...原创 2019-11-18 20:55:37 · 375 阅读 · 1 评论 -
剑指Offer之每日五道算法题(Java)——第二天
面试题22问题描述输入一个链表,输出该链表中倒数第k个结点。牛客网——链表中倒数第k个节点测试用例我的思路设置一个指针来遍历链表,同时设置一个指针指向遍历指针的第前k个节点。比如n指针(遍历指针)和p指针初始化指向链表头部。n指针从链表头部向后遍历,同时设置一个计数器记录移动次数。当计数器的值等于k时,让p指针同步开始移动(此时p指针指向的节点即为n指针的第前k个节点)当n指...原创 2019-11-13 17:30:07 · 229 阅读 · 0 评论 -
剑指Offer之每日五道算法题(Java)——第一天
面试题24问题描述输入一个链表,反转链表后,输出新链表的表头。反转链表——牛客网测试用例我的思路在保留头指针的情况下,用三个指针分别指向中间的节点与前后节点,像这样:反转中间指针的指向后,整体后移一格,变成这样:(这个A节点是头结点,所以不用管A的指向,最后将A结点指为null即可。)对上述操作进行循环,直到n.next指向null(也就是到了尾结点)为止,此时...原创 2019-11-09 11:49:13 · 409 阅读 · 0 评论 -
Java 设计模式通关之路——单例模式
单例模式是什么?单例模式(Singleton)通常来讲,就是让一个类仅仅只有一个实例,并提供一个全局访问点。如何控制让一个类只能有一个实例对象呢?全局变量?不行,虽然全局变量可以保证一个对象被访问,但是还是无法去阻止你实例化多个对象。既然外部无法进行控制,那就交给类自己维护吧,而外部仅仅只是起一个“通知的作用”,由类自己负责保存它的唯一实例,并对外提供一个访问该实例的方法。单例模式有三个特...原创 2019-11-08 14:14:15 · 230 阅读 · 0 评论 -
JDK1.8集合框架源码阅读(二)——Iterable接口
功能简介Iterable接口作为Collection的根接口,负责实现所有集合类的for-each语句功能。其内部维护了一个返回迭代器的方法,所有继承该类的集合类都可以实现自己的迭代器。(详见 Java 设计模式通关之路——迭代器模式)Iterable类定义如下:package java.util;public interface Iterator<E> { boo...原创 2019-11-05 22:21:14 · 186 阅读 · 0 评论 -
Java 设计模式通关之路——迭代器模式
什么是迭代器模式?我们知道,Java中对于集合的遍历提供了一种很简单的实现——Iterator类。一般我们对集合遍历时,都会做如下程序:List<Integer> arrayList = new ArrayList<>();arrayList.add(1);arrayList.add(2);arrayList.add(3);Iterator<Integ...原创 2019-11-04 20:44:01 · 166 阅读 · 0 评论 -
JDK1.8集合框架源码阅读(一)——总览
集合架构图图片摘自 基于jdk8的集合源码学习(一):第一篇集合体系一览图主要模块从架构图上可以看到,主要分为两大类:以Collection为主的集合结构,和以Map为主的键值对结构。而Collection又继承了Iterable类,其主要实现对for-each语句的支持。Collection的实现有三种:List、Set和Queue。List是一个有序的可重复集合,可在任意位置...原创 2019-11-03 14:48:32 · 349 阅读 · 0 评论 -
浅谈 Java 序列化(涉及部分源码分析)
序列化是什么?用一句话来概括:序列化是用来保存对象状态的一种机制。什么是对象的状态?比如现在有一个类:class A { int a; int b; A(int a, int b) { this.a = a; this.b = b; }}然后我们去声明了一个类A的实例:A a = new A(1, 2);现在这个对象中实例变量的值为1和2,这就是对象的状态。对...原创 2019-11-02 17:04:37 · 443 阅读 · 0 评论 -
Java 虚拟机初探(三)—— 堆
tips:本篇文章基于Hotspot JVM与JDK 1.8所撰写。内存区域我们首先来根据一张图初步了解一下内存区域的划分:因为我发现每一版块都有好多东西要说,故把各区域单拿出来一一说明。下面介绍的是主管JVM存储的区域——堆Java 堆我们常说:栈管运行,堆管存储。既然管存储,那么其必然是线程共享的。Java在运行时创建的所有类实例对象和数组都存储在堆中,堆也是垃圾收集器进行垃圾...原创 2019-10-24 09:14:56 · 364 阅读 · 0 评论 -
Java 代码块究竟是个啥?
前言对于Java初学者来言,一些代码真是整的我们云山雾罩的……有这样的:public class Test { static { System.out.println("static yo~"); } }这样的:public class Test { { System.out.println("oh yo~"); ...原创 2019-10-18 19:22:15 · 1727 阅读 · 0 评论 -
Java 虚拟机初探(二)—— 虚拟机栈
tips:本篇文章基于Hotspot JVM与JDK 1.8所撰写。内存区域我们首先来根据一张图初步了解一下内存区域的划分:因为我发现每一版块都有好多东西要说,故把各区域单拿出来一一说明。下面介绍的是主管JVM程序运行的区域——栈。Java虚拟机栈(stack)每一条Java虚拟机线程都有自己私有的Java虚拟机栈,这个栈与线程同时创建,也就是说,虚拟机栈的生命周期跟线程是一样的。...原创 2019-10-15 19:17:56 · 685 阅读 · 0 评论 -
Java学习笔记
JAVA:public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld!"); }} 基本:类名和文件名一致。 一个文件中只能有一个public类。 JAVA严格区分大小写。 申请内存不用释放,java有垃圾...原创 2018-04-28 14:31:45 · 531 阅读 · 0 评论 -
数据库三大范式理解与Mybatis懒加载
前言在写用户权限对应关系的时候突然想到一个问题:一般我们设计用户权限表都是三个表,分别为用户表、权限表、用户权限关系表(简单的用户权限对应,不考虑角色关系)那么为什么必须要三个表而不能直接用用户表、用户权限关系表来实现呢?为什么非要权限表这个中间表呢?要解决这个问题,首先要了解数据库设计里面的三大范式。数据库三大范式第一范式第一范式(1NF)标明数据表中的每一列(字段)都应是不可再...原创 2019-04-26 21:15:22 · 1307 阅读 · 0 评论 -
Spring boot + Mybatis 从零开始搭建个人博客系统(一)——初言及目录
☁️ 前言想了想真的是好久不写博客了,最近一直在搭建自己的个人博客,出现的一些问题一般都记在纸上,也没有真正的把问题系统的记录,直到现在个人博客系统基本搭建完毕,才有时间一点点整理自己遇到的问题,那么废话不多说,开始介绍项目。原创 2019-04-23 16:55:22 · 1059 阅读 · 4 评论 -
Spring boot + Mybatis 从零开始搭建个人博客系统(二)——项目起步
项目结构用 Spring Initializr 快速搭建项目,JDK版本为1.8,Spring boot 版本为1.5.9(2.0会出现莫名其妙的兼容问题,后续会逐渐向2.0过渡)Maven 引包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-04-23 19:41:23 · 1916 阅读 · 0 评论 -
Spring boot + Mybatis 从零开始搭建个人博客系统(四)——登录注册(后端)
这里是登录注册后端部分代码及思路,前端请访问:Spring boot + Mybatis 从零开始搭建个人博客系统(三)——登录注册(前端)数据表建立p.s. 很多人喜欢先建表再设计页面设计功能,但这一点很可能导致你后期为了功能而回来修改表,添加字段或删减字段,可能会给自己造成很大的麻烦,所以我建议这里先设计个人中心的页面,思考什么功能会用到用户表,我的用户表应该设计什么字段,这些字段应该含...原创 2019-04-28 18:12:01 · 1112 阅读 · 0 评论 -
Java 中你可能没有注意到的一些事(持续更新中...)
垃圾回收垃圾回收器只释放经由new分配的内存。如果JVM并未面临内存耗尽的情形,他是不会浪费时间去执行垃圾回收的。初始化即使变量定义于方法体之间,仍旧会在任何方法(包括构造器)之前初始化。静态变量会比非静态变量提前初始化,并且只初始化一次。(局部变量不会被初始化)关于静态初始化static标明的属性在类加载时就同时加载了,它会逐层寻找基类。什么意思呢?举个例子:有一个bo...原创 2019-09-03 17:22:58 · 130 阅读 · 0 评论 -
从JVM层面对Java多态机制深入探寻
前言我们都知道多态是Java中最重要的特性之一,原创 2019-09-22 16:34:54 · 358 阅读 · 0 评论 -
Java 虚拟机初探(一)—— 程序计数器
数据区域原创 2019-09-27 20:35:19 · 429 阅读 · 0 评论