自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方兴未艾

事情朝着好的方向发展并且还未结束。

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

原创 新手如何使用SpringBoot方便快速地搭建一个精美博客网站(源码分享且不用自己建表)

作者:曾中杰有多少人只顾着眼前的六便士,却不曾抬头看看皎洁的月亮项目地址:www.zengzhongjie.comGitHub源码下载地址:https://github.com/Mretron (能够帮上忙,不妨star一下)背景:    博主是一名大二软件工程的学生。坚持学习课堂上未曾教授的java以及javaweb相关的知识,乃至...

2019-04-24 19:32:00 2950 2

原创 TCL电视禁止第三方安装软件?如何远程给安卓智能电视强制安装安卓所有软件?

前言从大三上的某个时间点我就停止了更新博客,期间在忙着找实习。没想到促进我重拾笔墨,比划一下的事竟然和家里的电视有关。大一的时候家里买了TCL智能电视(其实也就是安卓系统),那时候我就去找了个适合电视的APP商店 当贝市场 ,开开心心地下载了QQ,爱奇艺,腾讯等TV版本…等到大三回来时发现电视更新了系统,安卓的权限收紧,禁止安装第三方的软件,只能通过自带的软件市场安装APP,无奈其中资源...

2020-05-06 01:11:14 14400 2

原创 HashTable源码解析

HashTable源码解析转载出处:blog.csdn.net/android_jia…Hashtable与HashMap有哪些区别?1.关于null,HashMap允许key和value都可以为null,而Hashtable则不接受key为null或value为null的键值对。2.关于线程安全,HashMap是线程不安全的,Hashtable是线程安全的,因为Hashtable的许多操...

2019-10-05 23:01:24 304

原创 LinkedHashSet源码分析

LinkedHashSet源码分析继承结构public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { private static final long serialVersionU...

2019-10-05 22:28:09 304

原创 TreeSet源码分析

TreeSet源码分析TreeSet简介java.lang.Object ↳ java.util.AbstractCollection<E> ↳ java.util.AbstractSet<E> ↳ java.util.TreeSet<E>public class TreeSe...

2019-10-05 22:07:51 199 1

原创 TreeMap源码分析

TreeMap源码分析前言TreeMap的基本概念:TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMap可以对添加进来的元素进行排序,可以按照默认的排序方式,...

2019-10-05 21:53:54 157

原创 HashSet源码分析

HashSet源码分析对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。利用HashMap且将所有的Entry值都设置为PRESENT,而key用来存数据,则保证当前HashMap存的key为唯一性。HashSet特点...

2019-10-05 20:47:42 151

原创 Vector源码分析

转载来源:https://blog.csdn.net/hla199106/article/details/47356165Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。接口的作用:...

2019-10-05 19:30:50 122

原创 LinkedList类

LinkedList类一、LinkedList定义LinkedList是一个用链表实现的集合,元素有序且可以重复。[外链图片转存失败(img-Z7rrHGkO-1568202117573)(F:\typora笔记\源码笔记\ArrayList\图片\09.png)][外链图片转存失败(img-sixJKbPo-1568202117574)(F:\typora笔记\源码笔记\ArrayLis...

2019-09-11 19:42:36 774

原创 ArrayList

ArrayList一、ArrayList简介1.1ArrayList概述ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类封装了一个动态再分配的Object[] 数组/*** Default initial capacity.*一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会...

2019-09-10 19:37:56 13648 3

原创 仅用递归实现栈的逆置

题目:一个栈依次压入1、2、3、4、5,那么从栈顶到栈地分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈低为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构package com.zzj.Chapter1.three;import java.util.Stack;public class Done_test { /** ...

2019-09-03 20:39:55 499

原创 《Java并发编程实战》笔记04之对象的组合

《Java并发编程实战》笔记04之对象的组合我们希望将一些现有的线程安全组件组合为更大规模的组件或程序。本章将介绍一些组合模式,这些模式能够使一个类更容易成为线程安全的,并且在维护这些类时不会无意中破坏类的安全性保证。4.1 设计线程安全的类通过使用封装技术,可以使得在不对整个程序进行分析的情况下就可以判断一个类是否是线程安全的。在设计线程安全类的过程中,需要包含以下三个基本要素:找...

2019-08-30 23:06:43 216

原创 《Java并发编程实战》笔记03之对象的共享

第二章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据,而本章将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,但一种常见的误解是,认为关键字synchronized只能用于实现原子性或者确定“临界区(Critical Section)”。同步还有另一个重要的方面:内存可见性(Memory Visibili...

2019-08-21 21:34:37 237

原创 《Java并发编程实战》笔记02之线程安全性

要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问。一个对象是否需要是线程安全的,取决于它是否被多个线程访问。这指的是在程序中访问对象的方式,而不是对象要实现的功能。**要使得对象是线程安全的,需要采用同步机制来协同对对象可变状态的访问。**如果无法实现协同,那么可能会导致数据破坏以及其他不该出现的结果。当多个线程访问...

2019-08-18 20:52:16 269

原创 《Java并发编程实战》笔记01之简介

编写正确的程序很难,而编写正确的并发程序则难上加难。线程是Java语言中不可或缺的重要功能,它们能使复杂的异步代码变得更简单,从而极大地简化了复杂系统的开发。此外,要想充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。随着处理器数量的持续增长,如何高效地使用并发正变得越来越重要。1.1 并发简史操作系统的出现使得计算机每次能运行多个程序,并且不同的程序都在单独的进程中运行:...

2019-08-15 21:44:58 160

原创 最近有感:忙于了解, 何时深入

回想刚刚初步学习了Java语言,草草用了大家都不推荐的Swing自己码了一个模仿微软的计算器,当做作业上交了老师。那时以为自己可以说会用Java,其实啥都不会,写个程序连面向对象的三大特性一个都没用上。唯一值得骄傲的是没有抄网上的代码,全凭借自己的水平和思维构建。一直到后面的算法比赛,竟然才觉得对Java的运用熟练度上升了一些。我今天这样觉得,当时学了Java的用法,就该多刷算法题,提高使...

2019-08-14 21:29:56 261

原创 Mysql语法之使用存储过程

存储过程简单来说,就是为以后的使用而保存的一条或多条MYSQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。一、为什么要使用存储过程通过把处理封装在容易使用的单元中,简化复杂的操作由于不要求反复建立一系列处理步骤,这保证了数据的完整性简化对变动的管理。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。提高性能存在一些只能用在单个请求中的MySQL元...

2019-08-12 10:56:47 302

原创 Mysql语法之使用视图

一、视图视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询select cust_name, cust_contactfrom customers, orders, orderitemswhere customers.cust_id = orders.cust_idand orderitems.order_num = orders.order_numand pro...

2019-08-11 18:02:00 271

原创 Mysql语法之创建和操纵表

一、创建表一般有两种创建表的方法:使用具有交互式创建和管理表的工具表也可以直接用MYSQL语句操纵1.表创建基础为了利用CREATE TABLE创建表,必须给出下列信息:新表的名字,在关键字CREATE TABLE之后给出表列的名字和定义,用逗号分隔create table customers( cust_id int NOT NULL AUTO_INCREME...

2019-08-11 16:29:42 221

原创 Mysql语法之更新和删除数据

一、更新数据为了更新(修改)表中的数据,可使用UPDATE语句。可采用两种方式使用UPDATE:更新表中特定行;更新表中所有行、不要省略WHERE子句,在使用UPDATE时一定要注意细心。因为稍不注意,就会更新表中所有行。基本的UPDATE语句由3部分组成,分别是:要更新的表列名和它们的新值确定要更新行的过滤条件UPDATE customerSET cust_ema...

2019-08-10 16:46:47 291

原创 Mysql语法之插入数据

一、数据插入INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:插入完整的行;插入行的一部分;插入多行;插入某些查询的结果;二、插入完整的行insert into customersvalues(NULL,'Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA','NUL...

2019-08-10 16:26:01 3004

原创 Mysql语法之组合查询

本章讲述如何利用UNION操作符将多条SELECT语句组合成一个结果集。一、组合查询多数SQL查询都只包含从一个或多个表中返回数据的SELECT语句。MYSQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)。有两种基本情况,其中需要使用组合查询:在单个查询中从不同的表返回类似结构...

2019-08-08 16:39:35 429

原创 Mysql创建高级联结

一、使用表别名咱们之前看到了如何使用别名引用被检索的表列。给列起别名的语法:mysql>select Concat(RTrim(vend_name),‘(’,RTrim(vend_country),‘)’) AS vend_title from vendors order by vend_name;别名AS除了用于列名和计算字段外,SQL还允许给表名起别名,有两个主要理由:缩短SQ...

2019-08-08 11:23:35 206

原创 Mysql语法之使用子查询和联结表

一、使用子查询迄今为止我们所看到的的所有select语句都是简单查询,即从单个数据库表中检索数据的单条语句。SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询。二、利用子查询过滤订单存储在两个表中。对于包含订单号、客户ID、订单日期的每个订单,orders表存储一行。各订单的物品存储在相关的orderitems表中。orders表不存储客户信息。它只存储客户的ID。实际的...

2019-08-05 16:19:00 203

原创 Mysql语法之分组数据

如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。一、数据分组分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。二、创建分组分组是在SELECT语句的GROUP BY 子句中建立的。来看例子理解:mysql>select vend_id,COUNT(*) AS num_prods from produc...

2019-08-04 17:06:25 400

原创 Mysql语法之汇总数据,聚集函数

什么是SQL的聚集函数以及如何利用他们汇总表的数据。一、聚集函数我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成。重复一遍,实际想要的是汇总信息。聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数函数说明AVG()返回某列的平均值...

2019-08-04 16:39:35 217

原创 Mysql语法之使用数据处理函数(文本,时间,数值)

SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。一、文本处理函数之前咱们已经看过一个文本处理函数的例子:RTrim()函数去除列值右边的空格。这次试用Upper()函数:mysql>select vend_name, Upper(vend_name) AS vend_name_upcase from vendors order by vend_...

2019-08-03 16:33:23 204

原创 mysql语法之创建计算字段

创建计算字段有的时候我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后在客户机应用程序或报告程序中重新格式化。这就会计算字段发挥作用的所在了。计算字段并不实际存在于数据库表中。计算字段你是运行时再select语句内创建的。**字段(field)基本上与列(column)**的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。...

2019-08-03 15:20:22 206

原创 mysql语法之通配符和正则表达式

用通配符进行过滤一、like操作符1.百分号(%)通配符%:表示任何字符出现任意次数mysql>select prod_id, prod_name from products where prod_name like ‘jet%’;上面这条语句使得找出所有以词jet起头的产品%告诉MySQL接受jet之后的任意字符,不管它有多少字符mysql>select prod...

2019-07-11 20:43:52 411

原创 mysql语法之查

使用Mysql1.选择数据库:mysql> use mysql;Database changed2.了解数据库和表1.显示所有的数据库:mysql> show databases;返回可用数据库的一个列表。包含在这个列表中的可能是MySQL内部使用的数据库2.显示一个数据库内的表的列表mysql> show tables;显示当前选择的数据库内可用表...

2019-07-11 19:44:13 881

原创 java的leetcode(3)无重复字符的最长子串,给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符...

2019-07-03 18:35:29 1744 1

原创 《深入理解Java虚拟机》笔记07之类加载器

7.4 类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便**让应用程序自己决定如何取获取所需要的类**。实现这个动作的代码模块称为“类加载器”。7.4.1 类与类加载器对于任何一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。比较...

2019-07-01 17:43:35 159

原创 《深入理解Java虚拟机》笔记06之类加载过程

7.1 概述我们知道,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。与那些在编译时需要进行连接工作的语言(比如C语言)...

2019-07-01 15:26:31 196

原创 《深入理解Java虚拟机》笔记05之垃圾收集器

3.5垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的G1收集器,之前G1仍处于实验状态)如下是该虚拟机所包含的所有收集器:在介绍这些收集器各自的特性之前,我们先来明确一个观点:虽然我们是在对各个收集器进行比较,但并非为了挑选出一个最好的收集器。...

2019-06-15 19:18:18 125

原创 《深入理解Java虚拟机》笔记04之垃圾收集算法

3.3 垃圾收集算法由于垃圾手机算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,这里只是介绍几种算法的思想及其发展过程。3.3.1 标记-清除算法**最基础的收集算法**是“标记-清除”(Mark-Sweep)算法,见名知意,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程请回忆上一篇博客的“生...

2019-06-12 22:06:21 181

原创 《深入理解Java虚拟机》笔记03之对象已死吗

第三章 垃圾收集器与内存分配策略Java与C++之间有一堵由内存动态分布和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。3.1 概述垃圾收集(Garbage Collection,GC),GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情:那些...

2019-06-11 12:42:19 127

原创 《深入理解Java虚拟机》笔记02之HotSpot虚拟机对象探秘

2.3 HotSpot虚拟机对象探秘基于实用优先的原则,作者以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。2.3.1 对象的创建在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个...

2019-06-08 21:26:07 236

原创 《深入理解Java虚拟机》笔记01之运行时数据区域

第一部分-走进Java1.1概述Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想:它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题:它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能;它有一套完整的应...

2019-06-07 18:58:26 230

原创 Java利用爬虫实现记录IP地址和博客网站访客量以及总访问量

背景:我的博客网站地址:www.zengzhongjie.com上线个人网站的时候便在想应该做一个访客记录功能,最终在一些机缘巧合下,自己终于实现了这个本该一开始就实现的小功能。思考过程:ok,记得那天决定实现这个功能后,便在思考应该怎么去实现。整个思考过程如下:首先应该在访客打开首页的时候就应该拿到该访客的IP(因为每一次的访问都是TCP连接,也就是说IP地址不会重复,一个IP便可以...

2019-06-04 21:53:46 1403 2

原创 17Jedis的主从复制+JedisPool

主从复制首先我们弄两个Redis: 79 和80,角色都是master,先各自先独立一般而言是主机存,从机来读package com.atguigu.redis.test;import redis.clients.jedis.Jedis;public class TestMS { public static void main(String[] args) throws ...

2019-06-02 18:16:44 860

空空如也

空空如也

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

TA关注的人

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