【Flutter】用InheritedWidget来实现全局变量

最近在研究使用Flutter来写一个跨平台的App,之前研究过使用Java来编写Android应用,且对于Java语言也比较熟悉,而Flutter使用Dart语言来编写的,因此在熟悉Dart语言和Flutter框架的过程中也遇到不少问题。 看了很多网上的资料和官方文档,Dart似乎不支持全局变量...

2019-04-29 15:06:23

阅读数 17

评论数 0

【并发】Java线程池

线程池顾名思义就是指管理一组同构工作线程的资源池,线程池与工作队列(Work Queue)密切相关,工作队列中保存了所有等待执行的任务。线程池管理的线程的任务就是从工作队列中获取一个任务、执行任务,然后返回线程池并等待下一个任务。 一、线程池的优势 1、减少线程的创建与销毁所带来的开销,同...

2019-04-21 23:21:32

阅读数 18

评论数 0

【Java】VarHandle解析

一、VarHandle简介 变量句柄(VarHandle)是对于一个变量的强类型引用,或者是一组参数化定义的变量族,包括了静态字段、非静态字段、数组元素等,VarHandle支持不同访问模型下对于变量的访问,包括简单的read/write访问,volatile read/write访问,以及CA...

2019-04-19 22:05:55

阅读数 43

评论数 0

【并发】AQS源码分析

AQS全称是AbstractQueuedSynchronizer,是JDK提供的一个同步器设计框架,很多并发数据结构如ReentrantLock、ReentrantReadWriteLock、Semaphore等都是基于AQS来实现的,下面来分析一下AQS的原理。 一、底层数据结构 AQS...

2019-04-18 12:56:52

阅读数 17

评论数 0

【面经】腾讯java后端实习面经

周六晚上八点半突然接到了腾讯CDG的面试电话,还处于一脸懵逼的状态,简历投的是WXG,然后莫名其妙被CDG捞起来了,然后记得提前批应该已经在三月份过去了,四月份应该是正式批了吧,但又没有参加笔试,然后就莫名其妙参加电话面试了,面试时间大概一个小时。话不多说,面经奉上。 一、自我介绍 二...

2019-04-14 01:17:12

阅读数 20

评论数 0

【并发】进程间通信与线程间通信

一、进程和线程 进程:简单来说,一个进程就是一个正在执行的程序实例,包括程序计数器、寄存器、程序上下文等信息。进程是资源分配的最小单位,每个进程拥有自己的地址空间,因此当一个进程崩溃时,其他进程不会受到影响。 线程:线程又称为轻量级进程,是CPU调度的最小单位,对于同一个进程所拥有的多个线程是...

2019-03-18 23:38:18

阅读数 19

评论数 0

【Java】LinkedHashMap及HashSet源码阅读(JDK1.8)

其实LinkedHashMap和HashSet都是基于HashMap来构建的,如果了解HashMap的底层原理的话,这两种数据结构就很好理解了。 LinkedHashMap继承自HashMap并实现了Map接口 public class LinkedHashMap<...

2019-03-15 12:58:10

阅读数 14

评论数 0

【Java】HashMap源码阅读(JDK1.8)

哈希表底层采用数组+链表(红黑树)的数据结构: static class Node<K,V> implements Map.Entry<K,V> { final int hash; /...

2019-03-15 12:32:00

阅读数 12

评论数 0

【面经】三七互娱Java游戏研发实习(一面)

一、王者荣耀服务器实现 二、接口和类的区别? 1、类只能继承一个类,但可以实现多个接口。 2、对于继承性,类继承了父类的方法,子类可以选择是否覆盖父类的方法。 3、接口的方法只有声明,没有实现;而类中的方法必须有方法体。 三、接口可以实例化吗?为什么?那lambda表达式不就是传...

2019-03-14 22:54:42

阅读数 355

评论数 0

【并发】Java锁分类

在Java并发领域,根据锁的状态、特性、粒度、轻重等有不同的分类方法,很多并发书籍或者文章都会或多或少提及一些专有的锁名词,为了理解各种分类的分类方法、原理及作用,在此特意总结一下。 一、乐观锁/悲观锁 乐观锁: 乐观地认为对于同一个数据来说不会被其他线程修改,因此不会加锁。更新数据的时...

2019-03-13 14:43:55

阅读数 26

评论数 0

【算法】双队列实现栈及双栈实现队列(Java实现)

一、两个队列实现一个栈 实现方法:两个队列一个用作工作队列,另一个用作临时队列。 插入数据:将该数据插入到工作队列队尾; 弹出数据:首先将工作队列的前n-1个元素弹出到临时队列中,并返回最后一个元素,实现栈“后进先出”的功能。最后临时队列变为工作队列,工作队列变为临时队列,任务完成。 p...

2019-03-13 11:41:21

阅读数 19

评论数 0

【设计模式】单例模式

单例模式是用来创建只有一个实例的对象的设计模式,通常应用在用来管理共享资源的对象上比如数据库连接池、线程池、事件管理器等。下面是几种单例模式的实现: 一、饿汉式(线程安全) public class Singleton1 { private static Singleton1 ins...

2019-03-12 13:04:29

阅读数 39

评论数 0

【Java】jvm类加载机制

一、类的生命周期 类从被加载到虚拟机内存当中,到卸载出内存位置,其生命周期包括七个阶段: 加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、运行(Using)、卸载(Unloading...

2019-03-10 15:22:36

阅读数 32

评论数 0

【数据库】数据库基本知识

一、事务概念 事务简单来说就是一组原子性的SQL查询,或者一个独立的工作单元,通常由一组SQL语句组成,如果其中任何一条语句因为崩溃或其他原因没有执行,那么所有的语句都不会执行。 二、事务特性(ACID) 1、原子性(Atomicity) 一个事务是数据库系统最小的工作单元,不可再分割...

2019-03-09 13:41:01

阅读数 589

评论数 0

【Java】垃圾回收算法

一、判断对象存活情况 1、引用计数算法(非Java所使用的方法) 每个对象都维护一个引用计数器,每有一个地方引用这个对象的时候,引用计数器就加1;当引用失效时,引用计数器就减1,当引用计数器的值为0时表示这个对象不可能再被使用了。 2、可达性分析算法 虚拟机维护一系列称为“GC Roots...

2019-03-02 03:11:28

阅读数 47

评论数 0

【Java】四种引用关系

引用关系在判断对象是否能够存活的过程中起到了关键的作用,但其实引用并不像字面上理解那么简单,在Java语言中引用分为强引用、软引用、弱引用、虚引用四类,其引用强度依次减弱。 强引用(Strong Reference):程序代码中普遍存在的,普通对象创建时默认是强引用关系,只要强引用还存在,垃圾收...

2019-03-01 19:56:51

阅读数 40

评论数 0

【Java】Java对象详解

名词解释: 符号引用:符号引用使用一组符号来描述所引用的目标,可以是任何字面量,只要能够无歧义地定位到该引用目标就行了。由于Java源代码编译成字节码的时候,虚拟机不知道所引用的目标的实际地址,所以需要用一个符号来代替引用的对象。比如说Student类引用了People类,但Student类不知...

2019-02-27 21:26:45

阅读数 30

评论数 0

【Java】Java内存区域

Java相对于C++来说的一个显著的区别就是其内存由虚拟机自动管理、动态分配,因此虚拟机将其管理的内存区域分为一下几大块: 一、线程隔离数据区 1、程序计数器 Java源代码经过编译之后生成字节码,在Java程序运行的过程中,必须知道当前运行的是哪一条指令,并且知道下一条指令的位置或者指...

2019-02-27 14:38:17

阅读数 36

评论数 0

【智能算法】PSO粒子群优化算法(C++实现)

粒子群优化算法(Particle Swarm Optimization, PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的演化算法。 PSO模拟了自然界鸟群捕食的过程,通过群体之间的协作来找到问题的全局最优解。 PSO的主要流程如下: 这里有一个动态图模拟粒子群优化算法的演...

2018-06-13 11:13:47

阅读数 668

评论数 1

常用排序算法(c++实现)

排序算法是比较基础也是很重要的一类算法,如何根据实际情况采用高效的排序对于实际应用十分关键虽然很多排序算法都集成到了语言的核心库中,但是理解其基本原理对我们还是很有帮助。先给出一个交换函数,因为排序算法大多涉及两个数交换,所以先写一个交换函数以便更好地复用template<t...

2018-06-02 16:27:06

阅读数 118

评论数 0

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