自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java MySQL表的约束与数据库设计 详解

1.DQL 数据查询语言 在上一篇博文中,我们已经讲述了部分数据查询语句,在此我们再次对其进行补充。1.1 排序 通过ORDAR BY 语句,可以将查询出来的结果进行排序。(排除只是一种现实的方式,不会影响数据库中的数据顺序) (1)单列排序:只按照某一个字段进行排序。SELECT * FROM 表名 WHERE 字段=值 ORDER BY 字段名[...

2020-04-29 22:27:37 1370

原创 Kotin协程的基础

同样也继承。

2023-08-09 07:42:13 128

原创 Recyclevie深入浅出(一)基础使用

最近一直整理一下RecycleView相关的知识,由于懒病发作,今天开始,加油,人是被逼出来的。话不多说,开整。首先要学会如何使用recylceView。1.使用recycleView先添加依赖,在App/buidle.gradle中dependencies { .... implementation 'com.android.support:recyclerview-v7:27.1.0' ...}2. 在主布局中添加RecycleView<andro

2022-03-13 16:53:17 3244

原创 Activity深入浅出全解

1、activity的生命周期先看一下官方的图1.1 正常情况下的生命周期onCreate():表示activity刚开始被创建,在这个方法中可以做一些初始化的工作,例如调用setContentView去加载布局资源、初始化Activity所需要的数据等。 onStart():表示Activity正在被启动,这时activity已经处于可见状态,但是还没有处于前台,无法和用户进行交互,其实已经显示出来,我们看不到而已。 onResume():表示activ

2022-01-24 11:36:13 1706

原创 OKHTTP深入浅出(七)----拦截器(4)CallServerInterceptor

就剩最后一个拦截器CallServerInterceptor了,之前的请看OKHTTP深入浅出(一)----基础理论_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(二)----基本用法_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(三)----源码流程_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(四)----拦截器(1)RetryAndFollowUpInterceptor_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(五)----拦截器(2

2022-01-12 15:24:48 296

原创 OKHTTP深入浅出(六)----拦截器(3)ConnectInterceptor

之前分析了okhttp 的前三个拦截器RetryAndFollowUpInterceptor、ridgeInterceptor、CacheInterceptor。当然还有okhttp的系列:OKHTTP深入浅出(一)----基础理论_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(二)----基本用法_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(三)----源码流程_王胖子总叫我减肥的博客-CSDN博客OKHTTP深入浅出(四)----拦截器(1)RetryAnd

2022-01-11 15:00:53 2126

原创 OKHTTP深入浅出(五)----拦截器(2)ridgeInterceptor与CacheInterceptor

上一篇文章我们说了OKHTTP的重定向和跟进拦截器OKHTTP深入浅出(四)----拦截器(1)RetryAndFollowUpInterceptor_王胖子总叫我减肥的博客-CSDN博客下面我们来说说桥拦截器ridgeInterceptor和缓存拦截器CacheInterceptor1、桥拦截器ridgeInterceptor 桥拦截器相当于应用层和网络层之间的桥梁,相当于 在 请求发起端 和 网络执行端 架起一座桥,把应用层发出的请求(请求发送端)变为 网络层认识的请求(网络执...

2022-01-10 17:52:12 2052

原创 OKHTTP深入浅出(四)----拦截器(1)RetryAndFollowUpInterceptor

上一篇分析OKHTTP的整体流程,OKHTTP深入浅出(三)----源码流程_王胖子总叫我减肥的博客-CSDN博客我们了解到OK的网络请求真正是通过拦截器链关联的各个拦截器进行处理的,先回顾一下RealCall的getResponseWithInterceptorChain()方法。Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. .

2022-01-07 17:57:15 659

原创 OKHTTP深入浅出(三)----源码流程

OKHttp 基本使用,在上一篇我们已经介绍过OKHTTP深入浅出(二)----基本用法_王胖子总叫我减肥的博客-CSDN博客之前我们介绍过OKHttp 的OKHttpClient对象和Request对象都是通过建造者模式构建的,首先要理解什么是建造者模式。仿照OKHttpClient的源码,写一个简单的建造模式public class House { private double height; private double width; private String c

2022-01-05 19:37:41 796

原创 OKHTTP深入浅出(二)----基本用法

1 、引入gradle 引入依赖implementation 'com.squareup.okhttp3:okhttp:3.14.7'implementation 'com.squareup.okio:okio:1.17.5'2、 Manifest 申请网络权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android

2022-01-04 19:26:16 2453

原创 OKHTTP深入浅出(一)----基础理论

一、前置基础1.1 什么是HTTPhttp 是超文本传输协议。超文本:就是超过了普通的文本,包括:文字、图片、视频等的混合体,最关键的是超链接。 传输:两点之间传输数据(允许中间有中转)1.2 http报文组成请求报文:请求行:请求方法、URL、协议/版本 请求头(Request header) 请求正文响应报文:状态行 响应头 响应正文 1.3 HTTP字段host字段: 可以将请求发送到同一台服务器上不同的网站。例...

2022-01-03 15:38:32 1986

原创 第二天——基本UI组件

组件是Android程序设计的基本组成单元,通过组件可以高效的开发Android应用程序。一、文本类组件Android中提供了一些与文本显示、输入相关的组件,通过这些组件可以显示或者输入文本。其中用于显示的组件为文本框组件,使用Test View类表示;用于编辑的组件为编辑框组件,用Edit View类表示。Edit View是Test View的子类。1 文本框...

2021-04-26 14:42:26 338

原创 第一天----用户界面设计基础

一 用户界面相关的概念 用户界面,也就是User Interface 简称UI。在进行UI设计的时候,经常使用View 与Viewfroup,以下对这两种概念进行介绍。1 View View在android中可以理解成视图,占据着屏幕中的一块矩形区域,是负责提供组件绘制和事件处理的方法,如果吧Android界面看成一个窗户,那么View就相当于每块玻璃,View类位于Android.view包中。view类及其相关属性可以在XML布局文件中进行设置。view类支持的常用XML属性...

2021-04-22 10:32:39 476

原创 MySQL

1、数据库的三大范式第一范式:每个列都不可被拆分。第二范式:在第一范式的基础上,非主键只完全依赖于主键,不依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键...

2020-09-11 11:46:58 107

原创 volatile

1、什么时候会用到volatile?如果需要保证多线程共享变量的可见性和有序性时,就用volatile来修饰变量。2、什么是共享变量的可见性?多线程并发编程中主要围绕三个特征实现,可见性是其中一种。可见性: 可见性是指多个线程访问同一个共享变量的时候,一个线程修改了这个变量的值,其他的线程立即可以看到修改后的值。原子性: 原子性指一个操作或者一组操作要么全部执行,要么全部不执行。有序性: 有序性指程序执行的顺序按照代码的先后顺序执行。3、volatile...

2020-09-09 12:08:39 335

原创 synchronized

1、什么场景中需要用到synchronized。为什么需要synchronized?多线程共享资源的时候,一个资源可以被多个线程访问并修改的话,这时就要用到锁。例如,内存中某一块数据时线程共享的,初始值为0,当前线程A从内部中读取数据执行+100的操作,此时线程B也从内部中读取数据执行+200的操作,B刚执行完毕,后脚A就把100写到内存,本来内存中的数应该改是300,但是现在却显示100。例如不带锁的情况:结果输出为2080,显然不合理public class locknumber {

2020-09-08 14:49:15 137

原创 java集合面试总结

1、ArrayList 和LinkedList的区别ArrayList是实现了动态数组的数据结构,linkedlist是基于(双向)链表结构的。对于随机访问,ArrayList要比linkedlist速度要快,因为linkedlist需要移动链表指针。对于新增和删除,linkedlist要比ArrayList的速度要快,因为ArrayList要移动数据。1.对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对 ArrayList而言,主要是在内部数组

2020-09-05 16:59:37 87

转载 (转载)看到过最好的一篇--java基本数据类型传递与引用传递区别详解

转载 https://blog.csdn.net/javazejian/article/details/51192130java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题,首先我们必须认识到这个问题一般是相对函数而言的,也就是java中的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法(或函数)的两个专业术语: 按值调用(call by value) 按引用调用(call by reference) 所谓的按值调用表示方法接收的是...

2020-09-01 14:55:33 101

原创 面试

自我介绍 您好,我叫朱良管,17年本科毕业于安徽巢湖学院,目前就读于杭州电子科技大学人工智能学院,明年4月份正式毕业。首先我认为自己具有很强创新能力和独立能力,大学期间,我曾自主创业,开设了一个“租你一个家”的商业模式,成效还不错,每个月可以收入3000元左右,因此在大学期间基本没有问家里要过生活费。其次我认为自己有一定的领导能力,在大学毕业半年期间,我在安徽立卓智能电网有限公司上班,在三个月转正期过后,部门领导就让我总体负责安徽黄山、蚌埠、马鞍山这三个城市的出差派遣。另外在我读研期间,我负责的...

2020-08-19 23:10:05 120

原创 Collection体系

1 java集合框架2 集合之List和Set3 Map4 HashMap 、HashTable、ConccurentHashMap的区别 HashMap(java8之前):数组+ 链表 性能恶化:从O(1)-O(n) HashMap(java8之后):数组+ 链表+红黑树 HashMap:Put方法的逻辑 1.若HashMap未被初始化,则进行初始化操作...

2020-08-18 22:35:03 160

原创 java异常以及常用工具类体系

1 java异常处理机制主要回答三个问题 1 what:异常类型回答什么被抛出。 2 where:异常堆栈跟踪回答了在哪抛出。 3 why:异常信息回答了为什么被抛出。2 java的异常体系 RuntimeException:不可预知的,程序应该自行避免。 非RuntimeException:可预知的,从编译器校验的异常。3 Error和Exception的区别 从概念...

2020-08-18 16:08:10 121

原创 java 线程池

1 java线程池 利用Executors 创建不同的线程池满足不同场景的需求。 1 newFixedThreadPool(int nThread) 指定工作线程数量的线程池。 2 newCachedThreadPool() 处理大量短时间工作任务的线程池。 (1)试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程。 (2)如果线程闲置时间超过阈值,则会被终止并移除缓存。 ...

2020-08-17 21:05:37 220

原创 CAS(Compare and Swap)

1.CAS 一种高效实现线程安全的方法(乐观锁)。 1.支持原子更新操作,适用于计数器,序列发生器等场景。 2 属于乐观锁机制,号称Lock-free 3 CAS 操作失败时,由开发者决定时继续操作,还是执行别的操作。2 CAS的思想 1 包含三个操作数------内存位置(V)、预期原值(A)、新值(B)。 (执行CAS操作的时候,将V与A进行比较,如果想匹配,处理器就是将该位置的值更新为新值B。否则处理器不做...

2020-08-17 19:24:29 101

原创 java内存模型Jmm可见性

1 java内存模型JMM java内存模型(java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。 (JVM运行程序的实例是线程,而每个线程创建时,JVM都会为其创建一个工作内存(栈空间),用于存储线程的私有数据,而java内存规定所有内存都必须存储在主内存中,主内存是共享内存区域,所有线程都可以访问,但是线程对变量的操作需要在自身的工作...

2020-08-13 18:05:07 241

原创 java线程与并发

1 线程安全问题 1.1 线程安全问题的主要诱因 1 存在共享数据(也称为临界资源)。 2 存在多条线程共同操作这些共享数据。 1.2 解决问题的根本方法 同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作。 1.3 互斥锁的特性 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问...

2020-08-13 15:32:07 96

原创 java多线程与并发

1 进程和线程的区别 1.1 进程和线程的由来 1. 串行:初期的计算机智能串行执行任务,并且需要长时间等待用户输入。 2. 批处理: 预先将用户的输入集成清单,批量串行处理用户指令,仍然无法并发处理。 3. 进程:进程独占内存空间,保存各自运行状态,相互间不干扰且可以相互切换,为并发处理任务提供了可能。 4. 线程:共享进程的内存资源,相互间切换更更快速,支持更细粒度的任务控制,使线程的子任务得以并发执行。 1.2 进程是资源...

2020-08-12 21:29:41 139

原创 java 垃圾回收常见的面试题

1. Object 的finalize() 方法的作用是否与C++的析构函数的作用相同 1. 与C++的析构函数不同,析构函数调用时机确定,finalize() 方法是不确定的。 2. 将未被引用的对象放置于F-Queue队列。 3. 方法执行随时可能会被终止。 4. 给与对象最后一次重生的机会。package Stack.virtulStack;public class Finalization { //定义一个Finalizat...

2020-08-10 22:31:44 331

原创 java 垃圾回收机制

1 .对象被判定为垃圾的标准 没有被其他对象引用 1.1 如何判定对象有没有被其他对象引用? 1.引用计数算法 2 可达性分析算法1.2 引用计数算法:判断对象的引用数量 1 通过判断对象的引用数量来决定对象是否可以被收回。 2 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1。 3 任何引用计数为0 的对象实例可以被当做垃圾收集。...

2020-08-10 21:06:45 194

原创 Java内存模型

1. 内存简介 在程序执行过程中,需要不断的将逻辑地址和物理地址进行映射。作为操作系统架构,Java面临着于其他程序完全相同的内存限制,受限于操作系统架构提供的可寻址地址空间。操作系统架构提供的可寻址地址空间由处理器的位数决定。 32位处理器:2^32的可寻址范围、4GB 64位处理器:2^64的可寻址范围。地址空间的划分: 1.内核空间:连接计算机硬件,调度程序,提供联网、虚拟内存等 2 用户空间...

2020-08-07 14:39:12 102

原创 Java 底层知识---面试总结

1 对Java的理解 1. 平台无关性 :一次编译,到处运行 2 .GC垃圾回收 :垃圾回收机制,不用手动的释放堆内存。 3. 语言特性 :包括泛型、反射、lambda表达式 4.面向对象 :封装、继承、多态 5.类库 :集合、网络库等 6.异常处理2 Compile Once,Run Anywhere 如何实现 编译时:用Javac 指令,将Java源码编译生成字节...

2020-08-06 17:36:09 168

原创 计算机网络之------HTTP协议

1 HTTP协议的概念 HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写。HTTP协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信,请求访问文本或者图像资源的一端称为客户端,提供资源响应的一端称为服务器端。2 HTTP协议的特点 简单快速:当客户端向服务器发送请求时,只是简单的填写请求路径和请求方法即可,然后就可以通过浏览器或其他方式将该 请求发送就行了 。 灵活: HTTP 协议...

2020-08-04 15:45:20 659

原创 TCP协议和UDP协议介绍

1 TCP与UDP之间的相同点 UDP协议和TCP协议都是传输层协议。2 UDP2.1 UDP 的概念 UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的传输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。2.2 UDP的报文头部 16位UDP长度,表示整个数据报(UDP首部...

2020-08-03 23:47:24 398

原创 计算机网络之-------TCP 三次握手和四次挥手

1.TCP的概念 TCP(Transmission Control Protocol) 传输控制协议,是一种面向连接的、可靠的、基于字节流的传输控制协议。TCP就是一个双向通信的规范标准。2 TCP头部报文 1)source port 和destination port source port 就是源端口号,具体指本地端口号,destination port 就是远程端口号。 一个数据包被解封装成数据段后就会涉及到连接上层协议的端...

2020-08-03 17:04:40 1497

原创 OSI七层模型和TCP/IP协议四层模型

1 OSI 七层模型 OSI (open System Interconnect 开放系统互联)七层网络模型 称为开放式系统互连参考模型,是一个逻辑上的定义,一个规范,他把网络从逻辑上分为7层。每一层都有相关、相对应的物理设备,比如路由器、交换机。OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是解决一种网络互连时所遇到的兼容问题,主要的功能就是帮助不同类型的主机实现数据传输。他的最大优点就是讲服务、接口和协议三个概念明确的划分。 第1层:物理层 O...

2020-08-01 16:06:46 593

原创 Java数据结构与算法------如何从顶部开始逐层打印二叉树节点数据

1 问题 给定一颗二叉树,要求逐层打印二叉树的数据,例如以下二叉树: 对这个二叉树进行层序遍历的结果为:1 ,2 ,3, 4, 5, ,6, 7 2 思路分析: 为了实现对二叉树的层序遍历,要求在遍历一个节点的同时,记录下它的孩子节点的信息,然后按照这个记录的顺序来访问节点的数据,在实现的时候可以采用队列来存储当前遍历到的节点的孩子节点,从而实现二叉树的层序遍历,遍历过程如下图所示。 如上图所示,首先...

2020-07-31 22:04:51 175

原创 Linux 系统 crond 任务调度

1.任务调度的原理 2. 概述 任务调度:是指系统在某个时间执行的特定的命令或程序。 任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等 2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。3. 基本语法 crontab [选项]...

2020-07-31 19:51:17 140

原创 Linux系统组管理和权限管理

1. Linux组介绍 在Linux中的每个用户必须属于一个组,不能独立于组外,在Linux中每个文件有所有者、所在组、其他组的概念。 2.文件/目录 所有者 一般为文件的创建者,谁创建了文件就自然成为该文件的所有者。 1)查看文件的所有者 指令: ls -ahl 应用实例:创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来...

2020-07-30 22:08:54 120

原创 Java数据结构与算法----如何从数组中找出满足a+b=c+d的两个数对

1.问题 给定一个数组,找出数组中是否有两个数对(a,b)和(c,d),使得a+b=c+d,其中a,b,c,d是不同的元素,如果有多个答案,打印任意一个即可。例如,给定数组:{3,4,7,10,20,9,8},可以找到两个数对(3,8)和(4,7),使得3+8=4+7。2 思路分析: 以数对为单位进行遍历,在遍历过程中,把数对和数对的值存放在Hash中,(键为数对的和,值为数对)。当遍历一个键值对,如果他的和在哈希表中已经存在,那么就找到了满足条件的键值对。3代码实现p...

2020-07-30 18:07:35 1054

原创 Java数据结构与算法-----如何从给定的车票中找出旅程

1.问题 给定一趟旅途中所有的车票信息,根据这个车牌哦信息找出这趟旅程的路线。例如,给定下面的车票:(“西安---成都”),北京--上海,大连--西安 , 上海--大连,那么可以得到的旅程路线就是:北京-上海- 上海--大连--大连-西安 西安--成都,假定给定的车票不会有环,也就是说,有一个城市只能作为终点,不能作为起点。2 思路分析 根据车票的信息构建一个HashMap,然后会这个hashMap 中找到整个旅程的起点,接着就可以从起到出发一次找到下一站,进而知道终点,具体的思...

2020-07-30 16:55:39 164

原创 Java数据结构与算法------如何实现LRU缓存方案

1.问题 LRU是least Recently Used 的缩写,他的意思是“最近最少使用”。LRU缓存就是使用功能这种原理实现的。简单的说,就是缓存一定量的数据,当超过设定阈值时就把一些过期的数据删除掉,常用于页面置换算法,为虚拟页式存储管理中常用的算法、2 思路分析: 可以使用两个数据结构实现一个LRU缓存。 1)使用双向链表实现的队列。队列的最大容量为缓存的大小,在使用过程中,把最近使用的页面移动到队列头,最近没有使用到的页面放在队列尾的位置。2)使用一个哈希表,...

2020-07-30 15:40:21 227

Maven本地仓库.zip

Maven本地仓库.zip

2020-05-13

空空如也

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

TA关注的人

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