自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 3句话帮你搞定Java I/O底层原理之一:字符流、字节流及其区别

Java中字符流与字节流什么是流?Java中的流是对字节序列的抽象。数据在两设备间的传输称为流,流的本质是数据传输。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。流是一组有顺序的,有起点和终点的字节集合。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类...

2020-03-29 14:03:46 938 5

原创 5分钟快速掌握Java 类加载器

Java 类加载器什么是Java 类加载器?类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Clas...

2020-03-25 20:42:16 1412 2

原创 5分钟细数Java多态神级坑题:Test.main()函数执行后的输出是( )

题目Test.main()函数执行后的输出是( )class Test { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A { protected int value; pu...

2020-03-21 14:01:52 747 2

原创 三分钟教你完全掌握Activity的生命周期

Activity的生命周期什么是Activity?当用户浏览、退出和返回应用时,应用中的 Activity 实例会在其生命周期的不同状态间转换。Activity类会提供许多回调,这些回调会让 Activity 知晓某个状态已经更改:系统正在创建、停止或恢复某个 Activity,或者正在销毁该Activity 所在的进程。在生命周期回调方法中,我们可以声明用户离开和再次进入 Acti...

2020-03-14 22:04:08 1172

原创 一篇文章教你理解控制反转(IoC)与依赖注入(DI)

什么是控制反转?软件中的对象就像齿轮一样,协同工作、互相耦合。若有一个零件不能工作,便会导致整个系统的崩溃。这种系统称为强耦合系统。齿轮组中齿轮之间的啮合关系与软件系统对象的耦合关系十分相似,对象的耦合是必要的,也是无法避免的,这是协同工作的基础。随着对象之间的依赖关系越来越复杂,对象之间的多重依赖性关系也随之经常出现。这就对架构师和系统设计师关于系统的分析的设计提出了巨大的挑战。对象之...

2020-02-25 15:10:35 631

原创 Redis的持久化方式

Redis的持久化方式

2023-02-25 12:33:51 449 1

原创 MySQL数据库中索引的优点及缺点

MySQL数据库中索引的优点及缺点

2023-02-25 12:32:07 1269

原创 Java8(JDK1.8)新特性

Java8(JDK1.8)新特性

2023-02-25 12:29:16 943

原创 HashMap数据结构

HashMap数据结构

2023-02-25 12:29:01 270

原创 【无标题String、StringBuffer、StringBuilder区别】

【无标题String、StringBuffer、StringBuilder区别】

2023-02-25 12:27:45 281

原创 springboot自动装配

springboot自动装配

2023-02-25 12:24:03 567

原创 什么是分布式锁?几种分布式锁分别是怎么实现的?

什么是分布式锁?几种分布式锁分别是怎么实现的?

2023-02-25 12:21:56 559

原创 为什么要用线程池?

线程池

2023-02-25 12:17:33 467

原创 SEATA是什么?它的四种分布式事务模式

事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。事务更多指的是单机版、单数据库的概念。分布式事务用于在分布式系统中保证不同节点之间的数据一致性。漫画: 什么是分布式事务?AT 模式的一阶段、二阶段提交和回滚均由 Seata 框架自动生成,用户只需编写“业务 SQL”,便能轻松接入分布式事务,AT 模式是一种对业务无任何侵入的分布式事务解决方案。

2023-02-25 11:58:40 509

原创 XXL-JOB任务调度平台

xxl-job是一个分布式的任务调度平台,其核心设计目标是:学习简单、开发迅速、轻量级、易扩展,现在已经开放源代码并接入多家公司的线上产品线,开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的拼音开头。分布式任务调度平台,目前比较主流的是elasticjob和xxl-job。

2023-02-25 11:41:40 514

原创 Java中的字符流

即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。什么是字符和字节?1 byte = 8 bit1 char = 2 byte = 16 bit (Java默认UTF-16编码)字节流InputStream和OutputStream是所有字节流的基类,是一种抽象类。Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据。字节流的使用InputStream类与OutputStream类均为抽象类,我们

2021-10-24 19:10:01 155

原创 C++命名空间,5分钟详解

在c++中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入关键字namespace(命名空间/名字空间/名称空间),可以更好地控制标识符的作用域。创建一个命名空间:namespace A{ int a = 10;}namespace B{ int a = 20;}v

2021-02-19 15:37:41 565 2

原创 Java并发编程:锁机制Lock用法示例

Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁现象。package com.expgiga.JUC;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reentr.

2021-02-03 12:41:28 168

原创 一篇文章5分钟总结Java常见线程安全类

一、概念:线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数据不一致或者数据污染的情况。对于线程不安全的问题,一般会使用synchronized关键字加锁同步控制。线程安全 工作原理: jvm中有一个main memory对象,每一个线程也有自己的working

2021-02-03 12:23:02 667 1

原创 Java并发修改异常的源码解析

代码复现List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");for (String str : list) { if ("a".equals(str)) { list.remove("a"); }}出现并发修改异常 ConcurrentModificationException产生原因at java.base/jav

2021-01-26 16:06:02 120

原创 一句话掌握广义表的head与tail的基本用法

GetHead是取广义表的第一个元素,要去掉一个"()",而GetTail是除掉第一个元素剩下的元素组成的广义表,也就是除掉第一个元素,再把剩余的元素"()"。举个例子:GetHead【((a,b),(c,d))】→(a,b)GetHead【GetTail【((a,b),(c,d))】】→GetHead【((c,d))】→(c,d)GetHead【GetTail【GetHead【((a,b),(c,d))】】】→GetHead【GetTail【(a,b)】】→GetHead【(b)】→bGet

2020-12-15 21:26:58 5533 4

原创 #1024程序员节# cc2530 按键唤醒功耗模式PM3例程

#1024程序员节#功能描述cc2530 按键唤醒功耗模式PM3//CC2530的休眠和低功耗/***************************************************************************** 文 件 名: main.c* 描 述: LED1闪烁3次后进入睡眠状态,通过按下按键OK产生外部中断进行唤醒***************************************************************

2020-10-24 23:29:10 268

原创 以下代码执行的结果是多少()?

题目以下代码执行的结果是多少()?public class Demo { public static void main(String[] args) { Collection<?>[] collections = {new HashSet<String>(), new ArrayList<String>(), new HashMap<String, String>().values() }; Super subToSuper = new

2020-10-24 17:07:38 1292

原创 一篇文章搞定嵌入式看门狗watch dog概述与示例代码

硬件中的看门狗,不是门卫的意思,而是一只很凶的狗!如果你不按时喂它,它就会让系统重启!这反而是我们想要的功能。

2020-09-29 10:09:39 8964

原创 cc2530 睡眠定时器串口显示

功能描述cc2530 睡眠定时器串口显示//第12次次课 (睡眠定时器方式唤醒)//体会1:切换系统主时钟16MHz和32MHz//体会2:当串口波特率比较高时候(19200),乱码多,降低后(9600)稳定,// 主要是因为双方硬件时钟不精确#include <ioCC2530.h>typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#de

2020-09-25 11:25:39 684

原创 cc2530 循环睡眠模式

功能描述cc2530 循环睡眠模式//睡眠模式循环 :PM0->PM1(1秒)->PM2(2秒)->PM3(3秒)//PM0=完全清醒 PM1=有点瞌睡 PM2=半梦半醒 PM3=睡死过去//1.PM0红灯亮3秒//2.熄灯进入PM1 2秒;//3.亮灯3秒(PM0);//4.熄灯进入PM2 2秒;//5.亮灯3秒(PM0);//6.熄灯进入PM3 等待按键#include <iocc2530.h>#define LED_G P1_0//绿灯#d

2020-09-25 11:24:29 657 1

原创 cc2530 睡眠定时器唤醒功耗模式PM2

功能描述cc2530 睡眠定时器唤醒功耗模式PM2//(睡眠定时器方式唤醒)#include <ioCC2530.h>typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#define LED1 P1_0 //P1.0口控制LED1#define LED2 P1_1 //P1.1口控制LED2//延时函数msec 延时参

2020-09-25 11:23:35 975

原创 cc2530 按键唤醒功耗模式PM3例程

功能描述cc2530 按键唤醒功耗模式PM3//CC2530的休眠和低功耗/***************************************************************************** 文 件 名: main.c* 描 述: LED1闪烁3次后进入睡眠状态,通过按下按键OK产生外部中断进行唤醒****************************************************************************

2020-09-25 11:21:45 830

原创 cc2530 切换时钟频率

主要功能cc2530 按ok键切换时钟频率16mhz或32hmz#include <ioCC2530.h>#define uint unsigned int#define uchar unsigned char#define LED_R P1_1#define LED_G P1_0#define button_OK P0_7void initport(){ P1SEL &= ~0x03; /* 设置P1_0,P1_1为普通IO口 */ P1DIR |= 0

2020-09-25 11:00:49 1618

原创 Which statement declares a variable a which is suitable for referring to an array of50string objects

题目(多选)Which statement declares a variable a which is suitable for referring to an array of 50 string objects?(Java)A. char a[][];B. String a[];C. String[] a;D. Object a[50];E. String a[50];F. Object a[];答案BCF解析A:char[][] 定义了二位字符数组。在Java中,使用字符串对c

2020-05-09 15:42:19 921

原创 下面关于hibernate核心接口说明错误的是?

题目下面关于hibernate核心接口说明错误的是?A. Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象B. SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存C. Query 和Criteria 接口:执行数据库的...

2020-05-05 23:08:31 793

原创 以下JAVA程序的运行结果是什么( )

题目以下JAVA程序的运行结果是什么( )public static void main(String[] args) {Object o1 = true ? new Integer(1) : new Double(2.0);Object o2;if (true) { o2 = new Integer(1);} else {o2 = new Double(...

2020-05-02 09:33:27 2355

原创 5分钟掌握设计模式之:单例模式

5分钟掌握设计模式之:单例模式本文思维导图什么是单例模式简介单例模式属于创建型模式,它保证一个类只有一个实例,并提供唯一节点访问该实例。单例模式主要解决一个全局使用的类被频繁地创建与销毁对象,浪费系统资源的问题。使用单例模式时首先要判断系统是否已经有这个单例,如果有则返回,如果没有则创建。单例模式的构造函数是私有的。单例模式是设计模式中使用很频...

2020-05-01 17:57:25 987

原创 把一棵树转换为二叉树后,这棵二叉树的形态是( )

题目把一棵树转换为二叉树后,这棵二叉树的形态是( )A. 唯一的B. 有多种C. 有多种,但根节点都没有左孩子D. 有多种,但根节点都没有右孩子答案A解析树转换为二叉树由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。将树转换成二叉树的步骤是:(1)加线。就是在所有兄弟结点之间加一条连线;(2)抹线。就是对树中的...

2020-04-29 17:16:21 28397 2

原创 检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

题目检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。package algorithms.com.guan.javajicu; public class Inc { public static void main(String[] args) { Inc inc = new Inc(); int i = 0; ...

2020-04-17 17:19:48 1622

原创 下列关于Java并发的说法中正确的是()

题目下列关于Java并发的说法中正确的是()A. CopyOnWriteArrayList适用于写多读少的并发场景B. ReadWriteLock适用于读多写少的并发场景C. ConcurrentHashMap的写操作不需要加锁,读操作需要加锁D. 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了答案B解析...

2020-04-08 19:35:47 4467 3

原创 关于ASCII码和ANSI码,以下说法不正确的是()?

题目关于ASCII码和ANSI码,以下说法不正确的是()?A. 标准ASCII只使用7个bitB. 在简体中文的Windows系统中,ANSI就是GB2312C. ASCII码是ANSI码的子集D. ASCII码都是可打印字符答案D解析A. 标准ASCII只使用7个bit,扩展的ASCII使用8个bit。B. ANSI通常使用 0x00 ~ 0x7f 范围的1个字节来表示 1...

2020-04-08 19:19:51 2233 2

原创 关于C++/JAVA类中static 成员和对象成员的说法正确的是?

题目关于C++/JAVA类中static 成员和对象成员的说法正确的是?A. static 成员变量在对象构造时生成B. static 成员函数在对象成员函数中无法调用C. 虚成员函数不可能是static 成员函数D. static 成员函数不能访问static 成员变量答案C解析虚函数是C++中的概念,在java语言中虚函数指代的就是抽象方法。抽象方法中不能用private,...

2020-04-08 19:15:43 2495

原创 对于文件的描述正确的是( )

题目对于文件的描述正确的是( )A. 文本文件是以“.txt”为后缀名的文件,其他后缀名的文件是二进制文件。B. File类是Java中对文件进行读写操作的基本类。C. 无论文本文件还是二进制文件,读到文件末尾都会抛出EOFException异常。D. Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。答案D解析A.文件分为文本文件和二进制文件,计算机只认识二进制...

2020-04-07 23:51:11 2446 1

原创 一句话区分运算符 | 和 ||,& 和 &&

一句话区分运算符 | 和 ||,& 和 &&太长不看版:结果上没有区别,运算过程中&两边都算,而 && 先算左侧,若左侧为 false 那么右侧就不运算了。如何区分运算符 | 和 ||,& 和 &&?首先,我们知道 | 和 & 定义为位运算符,|| 和 && 定义为逻辑运算符。在区分之...

2020-04-05 11:38:05 460 1

移动端新闻+PM2.5.zip

一个新闻页面的前端代码,使用了动态路由技术,调用了网易的一个接口,并添加了北京实时PM2.5的查询功能。

2020-03-30

空空如也

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

TA关注的人

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