- kotlin与MVVM结合使用总结(一)
每次的天空
kotlin开发语言android
一、Kotlin与MVVM结合的核心优势代码简洁性数据类(dataclass)简化Model层定义,自动生成equals/hashCode/toString扩展函数简化View层逻辑(如点击事件扩展)lateinit/bylazy优化ViewModel属性初始化异步处理优化协程(Coroutines)替代RxJava,轻量且代码可读性强withContext(Dispatchers.IO)切换线程
- Kotlin 流 倒计时
安果移不动
#038Composekotlinandroid开发语言
funcountDownCoroutines(total:Int,onTick:(Int)->Unit,onStart:(()->Unit)?=null,onFinish:(()->Unit)?=null,):Job{returnflow{for(iintotaldownTo0){emit(i)delay(1000)}}.flowOn(Dispatchers.Main).onStart{onSta
- SpringMVC的执行流程
sunyunfei1994
理论知识springspringmvc
过去的开发中,视图阶段(老旧JSP等)1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherS
- 【SpringBoot3】Spring 请求处理流程,自定义返回类型处理(HttpMessageConverter)
顽石九变
SpringBoot3.0从入门到精通spring后端springboot请求处理
一、SpringBoot请求处理1、请求处理流程SpringBoot的接口请求处理流程主要基于SpringMVC架构,以下是详细的请求处理流程:客户端发送请求:客户端发送HTTP请求到SpringBoot应用的URL。DispatcherServlet接收请求:SpringBoot应用中的DispatcherServlet拦截所有的请求。HandlerMapping进行映射:DispatcherS
- CoroutineScope Dispatchers.IO异步操作async返回函数,Kotlin
zhangphil
kotlinkotlin
CoroutineScopeDispatchers.IO异步操作async返回函数,Kotlinimportkotlinx.coroutines.*funmyFun(a:Int,b:Int,retFun:(sum:Int)->Unit){println("分支myFun开始...${System.currentTimeMillis()}")valtask=CoroutineScope(Dispat
- kotlin协程
taoyyyy
协程基础轻量级线程。在一个线程中可以启动多个协程。在协程中使用同步方式写出异步代码(协程挂起时不会阻塞线程),解决回调地狱。image.pngGlobalScope.launch(Dispatchers.Main){//开始协程:主线程valresult=userApi.getUserSuspend("suming")//网络请求(IO线程)tv_name.text=result?.name//更
- kotlin协程
Athephoenix
协程是什么协程是一种在程序中处理并发任务的方案,也是这种方案的组件。(adapter)协程和线程属于一个层级的概念协程中不存在线程,也不存在并行kotlinforjava的协程并不属于广义的协程——并行和并发的差别协程代码怎么写GlobalScope.launch(Dispatchers.Main){io1()uio1()io2()uio2()io3()uio3()}suspendfunio1()
- kotlin协程-Android实战,android面试八股文
m0_66264655
程序员架构移动开发android
overridefunonError(t:Throwable?){tv_text.text=“error”}})}//使用协程请求+渲染数据funrequestData2(){GlobalScope.launch(Dispatchers.Main){try{tv_text.text=Gson().toJson(testApi.getLatestNews2())}catch(e:Exception)
- 安卓Module with the Main dispatcher is missing.报错
ffmydream
在使用Dispatchers.Main作为上下文启动协程时报错:E/E:java.lang.IllegalStateException:ModulewiththeMaindispatcherismissing.AdddependencyprovidingtheMaindispatcher,e.g.'kotlinx-coroutines-android'andensureithasthesameve
- 安卓kotlin协程中更新UI
ffmydream
kotlin
button.setOnClickListener{CoroutineScope(Dispatchers.IO).launch{try{valsc=Socket(srvUrl,mPort)sc.soTimeout=10000valos=sc.getOutputStream()valpw=PrintWriter(os)pw.write(textView.text.toString()+"\n")pw
- kotlin协程笔记:Dispatchers
且听真言
KotlinDispatchers
Kotlin的launch会调用startCoroutineCancellable(),接着又会调用createCoroutineUnintercepted(),最终会调用编译器帮我们生成SuspendLambda实现类当中的create()方法。publicfunCoroutineScope.launch(context:CoroutineContext=EmptyCoroutineContex
- kotlin协程(Dispatchers.IO)
凌晨三点的北京
Kotlin源码分析
kotlin协程(Dispatchers.IO)项目调用方式privatesuspendfunupLog(resource_id:String):Boolean{varsuccess=falsewithContext(Dispatchers.IO){//做一些耗时操作,比如请求网络}returnsuccess}源码追踪Dispatchers类,发现是个静态变量@JvmStaticpublicval
- Kotlin 设置和获取协程名称
Ang_qq_252390816
kotlin前端开发语言
1,设置写成名称创建协程作用域是或者创建协程是有个上下文参数(context:CoroutineContext)创建协程作用域CoroutineScope(Dispatchers.IO+CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无源码:publicfunCoroutineScope(context:CoroutineContext):Corou
- kotlin coroutine源码解析之Dispatchers协程调度器
Super-B
kotlin协程coroutinekotlin协程coroutine
目录Dispatchers协程调度器Dispatchers.DefaultDispatchers.IODispatchers.MainDispatchers.Unconfined协程调度器的实现CoroutineScheduler总结Dispatchers协程调度器CoroutineDispatcher,具有用于调度任务的底层执行器。ExecutorCoroutineDispatcher的实例应由
- SpringMVC处理请求的流程
洛语言
servletjava前端
一、SpringMVC中的常用组件DispatcherServlet:前端控制器,不需要工程师开发,由框架提供作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求HandlerMapping:处理器映射器,不需要工程师开发,由框架提供作用:根据请求的url、method等信息查找Handler,即控制器方法Handler:处理器,需要工程师开发作用:在DispatcherS
- kotlin协程CoroutineScope Dispatchers.IO launch 线程Id
zhangphil
kotlin协程kotlin协程
kotlin协程CoroutineScopeDispatchers.IOlaunch线程Idimportkotlinx.coroutines.*funmain(args:Array){println("main线程id:${Thread.currentThread().threadId()}")CoroutineScope(Dispatchers.IO).launch{println("launc
- Kotlin 协程 - 协程调度器 CoroutineDispatcher
Jomurphys
Kotlin协程kotlin
一、概念协程必须运行在一个线程上,所以要指定调度器。是一个抽象类,Dispatcher是一个标准库中帮我们封装了切换线程的帮助类,可以调度协程在哪类线程上执行。创建协程时,上下文如果没有指定也没有继承到调度器,则会添加一个默认调度器(调度器通过ContinuationInterceptor延续体拦截器实现的)。通过Dispatchers调度,而不是Thread因为不是单纯指定线程。二、模式由于子协
- Android的协程(Coroutines)基础概念
超人TIGA
最近学习了下协程,在这里分享一下我自己的理解。1、协程是什么?在定义协程是什么之前,我们应该先知道协程是做什么的,对于项目而言是新增加的东西?还是替换原有的逻辑,从而获得好处?我们先看看coroutines最基础的用法:privatefunrunCoroutines(){GlobalScope.launch(Dispatchers.Main){valdata=getData()//获取网络接口数据
- Kotlin定时器
迪霸LZTXDY
kotlin开发语言android
classMyTimerTask():TimerTask(){overridefunrun(){uiScope.launch{for(iinarray.indices){withContext(Dispatchers.Main){holder.setText(R.id.The_current_value,array[i])}}}}}valtask=MyTimerTask()Timer().sche
- kotlin中的协程使用和原理
A_si
一些问题程序什么时候需要切线程?工作比较耗时:放在后台工作特殊:需要放在指定线程(ui刷新、计算、io)kotlin的协程是什么?线程框架可以用同步代码写出异步操作suspend关键字是什么?并不是切线程关键字用于标记和提醒协程的优势是什么?耗时代码自动后台,提高软件性能线程执行完毕自动切回起始线程协程的使用基本使用用launch()开启一段协程,一般需要指定Dispatchers.Main把要在
- Kotlin协程简述与上下文和调度器(Dispatchers )
Android技术栈
kotlinkotlin开发语言android程序员开发Android开发
协程概述子程序或者称为函数,在所有的语言中都是层级调用,如:A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序是通过栈来实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程看上去是子程序,执行的过程中,在子程序中可中断,去执行其他的子程序,在适当的时候可以回来接着执行。Kotlin协程工作原理Kotlin协程的
- 协程
纳兰沫
摘录自即学即用Kotlin-协程1.概念协程是轻量级的线程,是因为它基于线程池API,所以,处理并发任务这件事上游刃有余协程可以使用阻塞的方式写出非阻塞的代码,触发并发时常见的回调地狱2.使用GlobalScope.launch(Dispatchers.Main){valres=getResult(2)mNumTv.text=res.toString()}GlobalScope是协程的作用域Dis
- Kotlin协程之Dispatchers原理
潇风寒月
Kotlin协程不是什么空中阁楼,Kotlin源代码会被编译成class字节码文件,最终会运行到虚拟机中。所以从本质上讲,Kotlin和Java是类似的,都是可以编译产生class的语言,但最终还是会受到虚拟机的限制,它们的代码最终会在虚拟机上的某个线程上被执行。之前我们分析了launch的原理,但当时我们没有去分析协程创建出来后是如何与线程产生关联的,怎么被分发到具体的线程上执行的,本篇文章就带
- 协程知识点
明飞1987
协程kotlin
协程作用1.协程可以同步的方式去编写异步执行的代码协程可以使用阻塞的方式写出非阻塞式的代码,解决并发中常见的回调地狱协程在写法上和普通的顺序代码类似,同步的方式去编写异步执行的代码GlobalScope.launch(Dispatchers.Main){//开始协程:主线程valresult=userApi.getUserSuspend("suming")//网络请求(IO线程)//耗时阻塞的操作
- Kotlin中使用协程实现异步加载
岁月无痕灬灬
//线程代码块GlobalScope.launch{//异步线程valasync=async{getContactPhone()}//切换主线程withContext(Dispatchers.Main){hello.text=async.await().toString()Log.e("MainActivity",async.await().toString()}}
- Kotlin MutableStateFlow简单使用
wolf0706
kotlin开发语言android
创建接收端varflowCount=-1varstateFlow=MutableStateFlow(flowCount)funinit(){GlobalScope.launch(Dispatchers.IO){stateFlow.collect{}}}发送数据flowCount++stateFlow.value=flowCount不同线程之间数据存在依赖关系可以使用MutableStateFlow
- 奇葩需求系列-距离明天十二点倒计时
南风向北zhy
需求产品中有一个分红领取收益,只限制上午十二点之前领取有效,并且只能领取一次(后台限制)。所以需要一个倒计时,有两种情况:1.今天未超过十二点,eg:11:00倒计时01:00:602.今天已超过十二点,eg:13:00倒计时23:00:60效果图微信图片_20200220101611.png我用的是kotlin,代码如下://倒计时job=launch(Dispatchers.Main){whi
- kotlin 协程之取消协程
咸死的鱼_O
取消作用域会取消它的子协程。被取消的子协程并不会影响其余兄弟协程。协程通过抛出一个特殊的异常CancellationException来处理取消操作。所有kotlinx.coroutines中的挂起函数(withContext、delay等)都是可取消的取消作用域会取消它的子协程valb=runBlocking{valscope=CoroutineScope(Dispatchers.Default
- kotlin用CoroutineScope启动协程async等待结果返回
zhangphil
kotlin协程kotlin协程
kotlin用CoroutineScope启动协程async等待结果返回例如:importkotlinx.coroutines.*objectMyCoroutineScope{privatevalcoroutineContext=Job()+Dispatchers.Default+CoroutineName("my_context")valcoroutineScope=CoroutineScope
- 深入了解SSM框架(案例(SSM+Jsp) + 详细分析 + 思维导图)
咖啡Coffee~
SSMjavamybatismysqlspring
1.SpringSpring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。2.SpringMVCSpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherS
- 插入表主键冲突做更新
a-john
有以下场景:
用户下了一个订单,订单内的内容较多,且来自多表,首次下单的时候,内容可能会不全(部分内容不是必须,出现有些表根本就没有没有该订单的值)。在以后更改订单时,有些内容会更改,有些内容会新增。
问题:
如果在sql语句中执行update操作,在没有数据的表中会出错。如果在逻辑代码中先做查询,查询结果有做更新,没有做插入,这样会将代码复杂化。
解决:
mysql中提供了一个sql语
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
Cb123456
@+@?@*
一.@代表引用资源
1.引用自定义资源。格式:@[package:]type/name
android:text="@string/hello"
2.引用系统资源。格式:@android:type/name
android:textColor="@android:color/opaque_red"
- 数据结构的基本介绍
天子之骄
数据结构散列表树、图线性结构价格标签
数据结构的基本介绍
数据结构就是数据的组织形式,用一种提前设计好的框架去存取数据,以便更方便,高效的对数据进行增删查改。正确选择合适的数据结构,对软件程序的高效执行的影响作用不亚于算法的设计。此外,在计算机系统中数据结构的作用也是非同小可。例如常常在编程语言中听到的栈,堆等,就是经典的数据结构。
经典的数据结构大致如下:
一:线性数据结构
(1):列表
a
- 通过二维码开放平台的API快速生成二维码
一炮送你回车库
api
现在很多网站都有通过扫二维码用手机连接的功能,联图网(http://www.liantu.com/pingtai/)的二维码开放平台开放了一个生成二维码图片的Api,挺方便使用的。闲着无聊,写了个前台快速生成二维码的方法。
html代码如下:(二维码将生成在这div下)
? 1
&nbs
- ImageIO读取一张图片改变大小
3213213333332132
javaIOimageBufferedImage
package com.demo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* @Description 读取一张图片改变大小
* @author FuJianyon
- myeclipse集成svn(一针见血)
7454103
eclipseSVNMyEclipse
&n
- 装箱与拆箱----autoboxing和unboxing
darkranger
J2SE
4.2 自动装箱和拆箱
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。虽然为您打包基本数据类型提供了方便,但提供方便的同时表示隐藏了细节,建议在能够区分基本数据类型与对象的差别时再使用。
4.2.1 autoboxing和unboxing
在Java中,所有要处理的东西几乎都是对象(Object)
- ajax传统的方式制作ajax
aijuans
Ajax
//这是前台的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+
- 只用jre的eclipse是怎么编译java源文件的?
avords
javaeclipsejdktomcat
eclipse只需要jre就可以运行开发java程序了,也能自动 编译java源代码,但是jre不是java的运行环境么,难道jre中也带有编译工具? 还是eclipse自己实现的?谁能给解释一下呢问题补充:假设系统中没有安装jdk or jre,只在eclipse的目录中有一个jre,那么eclipse会采用该jre,问题是eclipse照样可以编译java源文件,为什么呢?
&nb
- 前端模块化
bee1314
模块化
背景: 前端JavaScript模块化,其实已经不是什么新鲜事了。但是很多的项目还没有真正的使用起来,还处于刀耕火种的野蛮生长阶段。 JavaScript一直缺乏有效的包管理机制,造成了大量的全局变量,大量的方法冲突。我们多么渴望有天能像Java(import),Python (import),Ruby(require)那样写代码。在没有包管理机制的年代,我们是怎么避免所
- 处理百万级以上的数据处理
bijian1013
oraclesql数据库大数据查询
一.处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 o
- mac 卸载 java 1.7 或更高版本
征客丶
javaOS
卸载 java 1.7 或更高
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
成功执行此命令后,还可以执行 java 与 javac 命令
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
成功执行此命令后,还可以执行 java
- 【Spark六十一】Spark Streaming结合Flume、Kafka进行日志分析
bit1129
Stream
第一步,Flume和Kakfa对接,Flume抓取日志,写到Kafka中
第二部,Spark Streaming读取Kafka中的数据,进行实时分析
本文首先使用Kakfa自带的消息处理(脚本)来获取消息,走通Flume和Kafka的对接 1. Flume配置
1. 下载Flume和Kafka集成的插件,下载地址:https://github.com/beyondj2ee/f
- Erlang vs TNSDL
bookjovi
erlang
TNSDL是Nokia内部用于开发电信交换软件的私有语言,是在SDL语言的基础上加以修改而成,TNSDL需翻译成C语言得以编译执行,TNSDL语言中实现了异步并行的特点,当然要完整实现异步并行还需要运行时动态库的支持,异步并行类似于Erlang的process(轻量级进程),TNSDL中则称之为hand,Erlang是基于vm(beam)开发,
- 非常希望有一个预防疲劳的java软件, 预防过劳死和眼睛疲劳,大家一起努力搞一个
ljy325
企业应用
非常希望有一个预防疲劳的java软件,我看新闻和网站,国防科技大学的科学家累死了,太疲劳,老是加班,不休息,经常吃药,吃药根本就没用,根本原因是疲劳过度。我以前做java,那会公司垃圾,老想赶快学习到东西跳槽离开,搞得超负荷,不明理。深圳做软件开发经常累死人,总有不明理的人,有个软件提醒限制很好,可以挽救很多人的生命。
相关新闻:
(1)IT行业成五大疾病重灾区:过劳死平均37.9岁
- 读《研磨设计模式》-代码笔记-原型模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* Effective Java 建议使用copy constructor or copy factory来代替clone()方法:
* 1.public Product copy(Product p){}
* 2.publi
- 配置管理---svn工具之权限配置
chenyu19891124
SVN
今天花了大半天的功夫,终于弄懂svn权限配置。下面是今天收获的战绩。
安装完svn后就是在svn中建立版本库,比如我本地的是版本库路径是C:\Repositories\pepos。pepos是我的版本库。在pepos的目录结构
pepos
component
webapps
在conf里面的auth里赋予的权限配置为
[groups]
- 浅谈程序员的数学修养
comsci
设计模式编程算法面试招聘
浅谈程序员的数学修养
- 批量执行 bulk collect与forall用法
daizj
oraclesqlbulk collectforall
BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、
FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。
有关FORALL语句的用法请参考:批量SQL之 F
- Linux下使用rsync最快速删除海量文件的方法
dongwei_6688
OS
1、先安装rsync:yum install rsync
2、建立一个空的文件夹:mkdir /tmp/test
3、用rsync删除目标目录:rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
- Yii CModel中rules验证规格
dcj3sjt126com
rulesyiivalidate
Yii cValidator主要用法分析:
yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
 
- 基于vagrant的redis主从实验
dcj3sjt126com
vagrant
平台: Mac
工具: Vagrant
系统: Centos6.5
实验目的: Redis主从
实现思路
制作一个基于sentos6.5, 已经安装好reids的box, 添加一个脚本配置从机, 然后作为后面主机从机的基础box
制作sentos6.5+redis的box
mkdir vagrant_redis
cd vagrant_
- Memcached(二)、Centos安装Memcached服务器
frank1234
centosmemcached
一、安装gcc
rpm和yum安装memcached服务器连接没有找到,所以我使用的是make的方式安装,由于make依赖于gcc,所以要先安装gcc
开始安装,命令如下,[color=red][b]顺序一定不能出错[/b][/color]:
建议可以先切换到root用户,不然可能会遇到权限问题:su root 输入密码......
rpm -ivh kernel-head
- Remove Duplicates from Sorted List
hcx2013
remove
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return&
- Spring4新特性——JSR310日期时间API的支持
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- 浅谈enum与单例设计模式
247687009
java单例
在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构
造器,导出静态成员变量,以便调用者访问。
第一种
package singleton;
public class Singleton {
//导出全局成员
public final static Singleton INSTANCE = new S
- 使用switch条件语句需要注意的几点
openwrt
cbreakswitch
1. 当满足条件的case中没有break,程序将依次执行其后的每种条件(包括default)直到遇到break跳出
int main()
{
int n = 1;
switch(n) {
case 1:
printf("--1--\n");
default:
printf("defa
- 配置Spring Mybatis JUnit测试环境的应用上下文
schnell18
springmybatisJUnit
Spring-test模块中的应用上下文和web及spring boot的有很大差异。主要试下来差异有:
单元测试的app context不支持从外部properties文件注入属性
@Value注解不能解析带通配符的路径字符串
解决第一个问题可以配置一个PropertyPlaceholderConfigurer的bean。
第二个问题的具体实例是:
 
- Java 定时任务总结一
tuoni
javaspringtimerquartztimertask
Java定时任务总结 一.从技术上分类大概分为以下三种方式: 1.Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务; 说明: java.util.Timer定时器,实际上是个线程,定时执行TimerTask类 &
- 一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法
yangshangchuan
rank相似度计算文本相似度词袋模型余弦相似度
本文描述了一种在ITEYE博客频道上面出现的新型的商业广告形式及其应对方法,对于其他的用户生成内容站点类型也具有同样的适用性。
最近在ITEYE博客频道上面出现了一种新型的商业广告形式,方法如下:
1、注册多个账号(一般10个以上)。
2、从多个账号中选择一个账号,发表1-2篇博文