自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wzcspace

敦品 力学 大气 卓越 生命不息 奋斗不止

  • 博客(40)
  • 收藏
  • 关注

原创 JS数组使用宝典

最近在公司里接触了JS,由于开发需要阅读了一些JS的书籍和资料,发现JS的数据结构很灵活,包括参数类型也是处于do whatever you want的状态(自由的同时也带来了一些坑,项目里就遇到了函数传参类型的问题)也算接触了一点函数式编程,但是这函数式编程技巧颇多,后面慢慢踩坑慢慢整合了。这次就JS里最常用的数据结构——数组,来进行一波整理。也算作为自己以后开发的小宝典吧~//JS数组常用操作const items = [ {name: 'A', price: 100}, {...

2020-11-01 17:17:23 429

原创 JDK源码阅读

为了让自己更加深入了解Java语言机制以及常用的库函数,最近打算开始一期JDK源码阅读,相应内容都已经在本人的微信公众号上发布了,喜欢的同学请关注噢~有问题欢迎CSDN留言讨论:)JDK源码阅读(一)——Object和StringJDK源码阅读(二)——AbstractStringBuilder,StringBuffer与StringBuilderJDK源码阅读(三)—— Integer...

2020-05-03 01:09:19 316

原创 Spring源码分析(一)——IOC容器的思考

Java后端开发有很多框架,最著名的就是Spring了。这个框架已经存在了快20年了,经过不断的更新迭代,成为了目前最火热的后端开发框架,并且形成了一个庞大的社区,衍生出很多系统设计的思想以及实现。在享受Spring带给我们开发便利的同时,了解背后的设计原理有助于我们更好的使用它,甚至在巨人的肩膀上进行二次开发,为开源社区贡献力量。本专题将深入到Spring框架的源码中去,网上看到好多对于Spr...

2020-03-04 03:01:58 273

原创 Java并发编程的艺术(六)——线程池

我们为什么要使用线程池?顾名思义,线程池就是一个存放了很多线程的“池”,就像粮仓一样,每次我们需要使用线程的时候都可以先去“池子”里看看有没有空闲的线程,如果有直接拿出来用就可以了。为什么要提前准备好这些线程并把他们存储起来呢?因为对于系统来说创建和销毁线程是非常消耗资源的,如果我们提前把一定数量的线程创建好并存储起来(不进行销毁),那么系统一旦到需要使用线程的时候就不需要重新创建了,而是到...

2020-02-27 02:07:23 137

原创 java并发编程的艺术(五)——五花八门的锁

多线程编程的很多实现是依靠锁完成的。锁在操作系统层面通过test and set 或者 compare and set等汇编指令实现的Java通过一些native的compareAndSet方法(每次看到native就蠢蠢欲动要去看native背后又是什么东西…)可以说Java所有的锁以及Java.util.concurrent包都是基于compareAndSet方法的各式组合构建出来的。接...

2020-02-12 05:38:17 129

原创 Java并发编程的艺术(四)——进程与线程

进程(process)是操作系统启动的一个程序,是操作系统资源分配的最小单元,一个进程可以包含多个线程线程(thread)是的CPU调度的最小单元线程的状态(6种):new:创造实例初始化,但未进行start()方法的调用,所以此时的线程还没到就绪态runnable:就绪和运行态统称为“运行”waiting:需要等待其他线程做出一些特定的动作(通知或者中断)timed—waiting...

2020-02-10 03:45:54 100

原创 Java并发编程的艺术(三)————synchronized,volatile与final

本章节主要介绍多线程编程中用的比较多的三个关键词,分别是synchronized, volatile, final在开始之前首先要明白JMM模型的内容,即每个线程都是有自己本地的内存,用来存储变量和数据备份的。模型如下图:具体可参见前一章Java并发编程的艺术(二)——Java内存模型接下来一起进入这些关键字的世界~1. synchronized英文含义就是“同步”,非常的直接明了,就...

2020-02-07 23:13:11 167

原创 Java并发编程的艺术(二)——Java内存模型

Java内存模型软件和硬件的共同目标是在不改变程序执行结果的前提下尽可能提高并行度,从而提高运行的效率(在准确的前提下越快越好)多线程情况下如何不改变程序执行结果会引发如下的思考:问题:线程之间如何通信线程之间如何同步JVM内存中的方法区以及Java堆是线程共享的区域,在程序运行过程中不断的有线程修改共享区域中的变量值,那么如何确保多线程情况下程序运行的结果依旧是正确的?首先我们...

2020-01-30 02:27:08 112

原创 Java并发编程的艺术(一)——Java并发的基础知识

上学期学习了计算机组成,跟着老师用C++模拟了一下CPU的流水线以及缓存之后发现正因为工程师对于性能与效率的极致追求才有了现在先进的各式计算机设备。最近看了java虚拟机的书后也发现了虚拟机优化这块用到了很多并行架构,比如G1,CMS垃圾回收器就是用到了多线程。在当今多核架构盛行的情况下,如何高效的利用多个CPU协同工作,成为提高程序运行速率的核心技术点之一。多核心协同工作在编程界就是所谓的并发...

2020-01-29 12:49:34 131

原创 跟我一起学JVM(七)——类加载器

(一)类加载器类加载器的作用:将Class文件加载进JVM方法区,并在方法区中创建一java.lang.Class对象作为外界访问这个类的接口。类加载器的种类:(1)启动类加载器加载JAVA_HOME/lib下的class文件(2)扩展类加载器加载JAVA_HOME/lib/ext下的class文件(3)应用程序类加载器加载用户classpath下的class文件注意:比较两个...

2020-01-17 11:49:17 126

原创 跟我一起学JVM(六)——类的加载机制

类的生命周期加载-验证-准备-解析-初始化-使用-卸载类的初始化阶段,虚拟机严格规定了有且只有五种情况必须立即对“类”进行初始化,而加载和连接过程已经完成主动引用:(1)遇到new,getstatic,putstatic,invokestatic指令时,如果类未初始化,则要先触发初始化(2)使用Java.lang.reflect包的方法对类进行反射调用的时候,若未初始化则进行初始化(3...

2020-01-15 13:15:52 90

原创 跟我一起学JVM(五)——类文件结构

本章节内容涉及到一部分的计算机组成与设计,汇编语言以及Java语言的内容。1.无关性基石因为JVM只关注Class文件的解析运行,负责将Class文件转化成机器码与本机操作系统进行交互。所以任何语言只要能将程序编译成JVM接受的Class文件格式,就可以放到JVM上运行。现在市面上有很多将其他语言转化成JVM识别的字节码编译器,比如JRubyc,groovyc编译器等等。2. Class...

2020-01-13 20:44:24 133

原创 跟我一起学JVM(四)——JVM调优总结与实例

Java虚拟机对于内存的管理和垃圾收集是虚拟机结构中非常重要的一环,对提升程序的性能和稳定性有着非常重要的作用对于JVM的调优是没有正确答案的,需要根据项目的实际情况来配置合适的JVM参数。(一)尽量减少Full GC的发生通过之前的学习,我们知道老年代发生的GC速度比新生代速度慢十倍左右,那么如果想要提高性能,减少老年代的Full GC是非常有用的如何减少Full GC的发生?1.提高...

2020-01-12 15:33:22 188

原创 跟我一起学JVM(三)——垃圾收集,刻不容缓

​本节的内容是Java虚拟机的核心——垃圾收集算法与垃圾收集器。现实生活中我们都要讲究垃圾分类,垃圾收集。计算机的内存空间就像现实生活中的储物室一样,存放杂物的同时需要定期清理,毕竟空间有限。那Java虚拟机在内存垃圾处理上面用到了哪些技术呢?让我们开始本章的学习。第一章Java虚拟机内存结构中我们学习了程序计数器,虚拟机栈以及本地方法栈都是线程私有的,会伴随线程的结束而自动释放空间,但是Ja...

2020-01-11 16:49:17 190

原创 跟我一起学JVM(二)——Java对象的幕后

今天的学习内容为Java对象的创建,内存分配以及访问。我们都知道在Java程序中使用new关键字能够为我们创建一个对象实例,并且能按照我们的需要去进行一系列的对象初始化工作,但是很少有人愿意探究这个对象构建背后的过程。本文第一部分就是详细解读一个对象是如何被创造的。(一)对象的创建为了更好的理解,对象的创建过程将通过流程图来展示:我们平时只会使用new,而一个new背后其实是这样的工作机...

2020-01-10 19:58:21 117

原创 跟我一起学JVM(一)——Java虚拟机的内存结构

Java编程语言的特性就是兼容各种平台,这也是Java得到不断发展的重要因素之一。有没有人想过为什么会兼容呢?在一开始接触Java的时候我们就需要安装Java virtual machine(JVM)以及JDK,平台兼容性的核心技术就在于JVM,因为Java程序是运行在JVM上,与操作系统之间的协调通信都是由JVM帮着完成的,所以只要由JVM的地方就能运行Java。趁着假期打算出一个对于Jav...

2020-01-09 22:06:37 149

原创 性能问题的思考

性能问题往往是非常难以解决的,主要由于生产环境复杂,造成问题的原因众多,定位问题比较困难。最近阅读了《性能之巅》,通过此文章来总结一下自己学习到的知识。通读整本书,发现操作系统的学习在性能问题排查上面将起到非常关键的作用,写代码的时候感觉操作系统层面的东西离我们有些遥远,但其实在性能分析这块很多知识点就都串联起来了,体现在对软硬件资源的分析上。首先上一幅自己绘制的脑图(全文的核心):性能问...

2020-01-08 16:55:26 404

原创 利用Docker容器快速搭建自己的网站

上周项目组开设了一些技术交流会,在交流会上向我们普及了Docker的使用,于是回到家就有些跃跃欲试,想初步探索一下Docker的便捷与强大。于是就尝试使用Docker在自己的服务器上搭设一个小网站。什么是Docker?类比到生活中就是一艘装着集装箱的货轮。这艘巨大的货轮就如同一台服务器,而每一个集装箱就是这服务器上一个个小小的容器,每个容器内部装载着不同的货物,由于集装箱的尺寸都是统一的,这也就...

2019-07-09 22:29:14 1581

原创 利用LSTM进行空气指数预测

毕设终于结束,感谢指导老师以及团队大伙们的辛苦付出,是时候总结一下毕设的内容了。我们团队的毕业设计是关于利用递归神经网络模型LSTM(long-short-term memory)对中国主要城市的空气质量指数进行预测,并将LSTM与RLS进行比较,论文的主要内容是数据分析,机器学习。之前对于机器学习一片空白的我在经历了毕业设计之后,接触到了几个比较常见的模型,接触到了tensorflow以及k...

2019-05-16 09:36:47 10174 28

原创 数据结构专题(四)—— 树

树在计算机中占着举足轻重的地位,目前计算机中的文件系统,程序开发中的XML与HTML等都是树这一数据结构的运用。甚至包括英雄联盟的匹配系统也采用了树,这章内容重点讨论树结构,并使用Java对一些常见的面试问题做个总结。由于关于树的问题众多,所以我准备分两部分进行整理。什么是树?树的深度,高度,根节点,父节点,子节点等概念一张图即可说明清楚关于树的编程问题有很多变形,但经过研究发现大部分解...

2019-02-21 11:57:06 197

原创 数据结构专题( 三)—— 散列(Hashtable与HashMap)

散列函数hash又可以音译成哈希函数,被广泛使用在加密认证,并且散列表能够提供高效率的插入查找操作,通过利用空间换取时间的方式来提高性能。所以散列的缺点也就是占用计算机的存储空间比较大,这也就告诫工程师们在开发中要善于思考,针对特定的问题使用合适的数据结构进行处理。本章的目的就是结合Java语言来展现哈希函数的使用。关于散列,Java的集合框架里就有很多关于散列的元素,其中比较重要的三类就...

2019-02-15 09:32:54 163

原创 数据结构专题( 二)——栈与队列

什么是栈?其实栈就是一种后进先出的结构,就像一沓书本,每次取书本只能从最上面取,那么压在最底下的书本肯定是最先摆放在桌面上的,自然而然肯定是最后被取走的。什么是队列?队列是一种先进先出的结构,队列在生活中的例子就更多了,火车站排队,食堂买盒饭的队伍,其实都可以抽象成一个队列,每当一个人买完票或者拿到盒饭就会离开队列,先来到售票或者食堂窗口的人肯定是先买到票或者吃饭的。数据结构其实充...

2019-02-05 03:56:52 368

原创 数据结构专题(一)——数组与链表

数组与链表是计算机内存存储方式的基石,理解了他们对后续的数据结构以及算法学习大有好处,比如把链表的增删方式做一些限制就能形成所谓的队列和栈结构,并且链表在图与树结构的存储中也大有用处。学习数据结构与算法的关键就是要将学到的知识用起来,通过解决问题来不断进步,加深对于数据结构与算法的理解。网络上也有许多关于链表的操作问题,主要有如下几个:1. 单链表的创建和遍历2. 从尾到头打印单链表...

2019-01-30 13:40:02 195

原创 SSM 初探(一)Spring核心知识点

人类的发展很大原因是因为人的惰性        SSM框架是由Spring,Spring MVC, Mybatis组成,其实就是一栋房子由三种不同颜色的砖搭建起来的意思。每一种砖块都负责这房子的不同部分。比如打地基要用一种材料,建房子主体需要另一种砖块,房顶就需要瓦去装饰了。        在研究了一段时间的框架之后,发现其中的很多设计灵感都是来源于生活的,就像刚开始说的“人类的发展很大原因是...

2018-11-13 12:05:13 451

原创 Git 初探

什么是git?Git是一种distributed version control system以往的代码仓库模式是中心化的,工程师们把所有的代码存放在一台服务器上面,如果这台服务器宕机,那就意味着失去所有的代码数据。为了避免这种情况的发生,工程师们想到一个办法,就是将数据不仅仅存放在远程服务器上,本地电脑里也保存了一份数据,这样确保了数据不会丢失的问题。许多项目在研发过程中会存在更新迭...

2018-11-02 03:15:35 122

原创 IDEA SSM框架jdbc配置bug总结

最近学习到Java web的框架时尝试使用Spring+Spring MVC+Mybatis配置,也就是我们所熟悉的SSM框架。在配置过程中测试时遇到了如下的错误报告:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException...

2018-09-11 03:03:26 267

原创 Java反射机制的理解(Spring学习铺垫知识点一)

由于要学习Spring框架,所以先补充一波对Java反射机制原理的理解。 遇到一个问题或者概念,第一步就是要知道它的基本定义,然后再探寻它是什么,怎么用。什么是反射? Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为Java 的反射机制。以上的...

2018-08-12 21:14:41 182

原创 HTTP与HTTPS的相关概念

HTTP协议,工作流程,请求格式,1.1版本8种请求方式,响应格式,重要请求头与相应头字段,常用状态码及其含义(1) HTTP协议(超文本传送协议,超文本指的是包涵指向其他文档链接的文本)是应用层协议,用来解决万维网上各种连接的相互连接。(2) HTTP使用TCP进行可靠的传送(3) HTTP本身是无连接的,通信双方需要建立TCP连接而不需要建立HTTP连接(4) HTTP协议是无...

2018-08-12 15:27:38 217

原创 POJO, VO, PO, DTO, DAO, Java bean的理解

暑期为了扩充自己的Java知识,于是尝试贴合企业开发流程,了解Java项目的分工合作模式。以下就是关于POJO,VO,PO,DTO,DAO, java bean等的理解。一般的软件开发业务分为三层: 1.视图层(View+Action) 2.服务层(Service) 3.持久层(DAO)POJO类: Plain Ordinary Java Object 那么什么是POJO类,通过名...

2018-08-12 15:23:51 1003 1

原创 Redis 集群 Java Demo

既然学习了Redis,最好的方式就是自己尝试写一个购物车,将redis与数据库联系在一起,通过项目巩固知识。具体源代码见个人的Github:https://github.com/wzcwzcwzc/redis-java这里列举了一些jedis配置集群端口以及核心的功能代码。此处在本机配置了集群的端口,将这些端口放入java的集合内,这样便于操作。 public Set<HostAndPor...

2018-06-16 13:52:42 467

原创 Centos 7 配置 Nginx

昨天在阿里云服务器上配置了一中午的nginx,遇到了各种问题,最终查阅了资料解决了。今天利用空余时间赶紧总结一下,防止再犯错被坑。本文的主要内容是在Centos 7 上配置 Nginx。第一步就是安装Nginx了yum install nginx当安装完毕后如果直接使用如下的指令启动nginx,你会发现有报错,需要你使用systemctl等查看异常之类的,这说明nginx默认的端口被占用,无法启...

2018-06-03 16:56:32 134

原创 win10 Redis集群配置

最近研究了一下比较热门的Redis技术,并在win10系统下进行了集群配置,以下就是集群配置的详细流程,希望能给大家带来帮助。首先我们要知道为什么要使用Redis集群技术,这是由于它自己的性质所决定的。首先Redis不同于传统的关系型数据库,它是通过内存来进行大量的数据读写操作的,所以相对于关系型数据库,Redis这种“内存数据库”读写的速度是非常快的。但是随着企业的发展,大数据时代的来领,Red...

2018-05-23 16:32:48 3269

原创 计算机基础---反码,补码与运算符

最近在研究分布式生成全局唯一ID算法Snowflake时遇到一个很有意思的数据long x = -1L ^ (-1L << 5);这个x的值究竟是多少呢?答案是31现在就让我们一起探讨一下这个问题。首先 long 这一基本数据类型为长整型,在Java里占用64位二进制,所以对于-1L 我们可以用以下的二进制表示,其中第一位为符号位,符号位为1则是负数,为0则为正数,此处将符号位脱离开,...

2018-05-11 16:17:27 1205

原创 Wi-Fi 破解 (基于WPA2协议)

如今信息安全越来越热门,最近搞大创项目有机会接触到了我们一直谈论的Wi-Fi破解技术,于是整理了一些关于Wi-Fi破解的东西分享给大家,包括一些Wi-Fi的基本知识。希望大家只是拿自己的Wi-Fi做实验,不要“Wi-Fi破解,从入门到入狱”噢。首先先提出一些基本概念:第一个概念是无线网络的攻击基本类型:1.防御完全无效:悄无声息安全通过2.防御存在障碍:攻击这种网络通常情况下需要一个字典,...

2018-05-08 09:06:16 2709

原创 对于自己小网站的寄语

wzc第一篇博文:今天是2017年10月8日,在经历了漫长备案后,域名为wzcspace.com的博客抓住国庆小长假的尾巴终于上线,向互联网上的所有人问好!各位访问者,首先非常感谢您光临本人的博客wzcspace,为什么取名wzcspace?其实这wzc不仅仅是我名字的首字母,也代表了三个单词,分别是:warrior,zoom与capacity。包含了我对于每位访问者的祝福和期盼。首先是warri...

2018-05-08 08:56:02 342

原创 JDBC数据库连接

对于数据库连接,以下总结了通用的JDBC连接方式,可以满足一些简易Java应用程序的需求。在部署JDBC时需要导入相应数据库的jar包,jar包请自行下载并配置到相应的开发平台上。package cn.itcast.AccountSys;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Resu...

2018-05-07 14:36:44 104

原创 运输层(传输层)知识点汇总-4

运输层(传输层)1. 传输层的作用运输层向其上面的应用层提供通信服务2. 传输层复用和分用的含义复用:应用层所有的应用进程都可以通过运输层再传送到IP层(网络层)分用:运输层从IP层收到发送给各个应用进程的数据后必须分别交付指明的各应用进程。3. 传输层与网络层的区别网络层为主机之间体用逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。运输层向高层用户屏蔽了下面网络...

2018-05-04 10:44:21 1491

原创 网络层 知识点汇总-3

网络层互联网的设计思路:网路层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。并且互联网可以是由多种异构网络互连组成,即既包含卫星链路,也包含无线局域网等类型的网络。 网际协议(IP)与IP协议配套的还有三个协议:(1) 地址解析协议ARP(address resolution protocol)(2) 网际控制报文协议ICMP(internet control message

2018-05-04 10:43:14 185

原创 物理层与数据链路层知识点汇总-2

**计算机网络之物理层:**双绞线: 两根互相绝缘的铜导线并排后使用规则的方法进行绞合,绞合可以减少对于相邻导线的干扰。光缆:利用光导纤维传递光脉冲进行通信。有光脉冲为1,无光脉冲则为0。由于可见光的频率非常高,因此光纤通信系统的传输带宽远远大于目前其他各种传输媒体的带宽。信道复用技术:最基本的复用为频分复用FDM与时分复用TDM来自信源的信号为基带信号。信号要在信道上进行传输就需要调制。计算机网络

2018-05-04 10:42:13 652

原创 初探计算机网络知识点汇总-1

初探计算机网络知识点汇总-1计算机网络的层次结构:五层协议的体系结构由应用层,运输层,网络层,数据链路层,物理层组成。七层OSI模型:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层。互联网目前的传输技术:互联网现在采用存储转发的分组交换技术以及三层ISP结构,即主干ISP,地区ISP,本地ISP。ISP(网络服务提供商)数据传输阶段的三种交换方式:(1)...

2018-05-04 10:39:41 352

空空如也

空空如也

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

TA关注的人

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