Netty WebSocket协议开发
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenchaohao12321/article/details/88635636 1、WebSocket服务端功能介绍 WebSocket服务端的功能如下:支持 WebSocket的浏览器通过 WebSocket协议发送请求消息给服务端,服务端对请求消息进行判断,如果是合法的 WebSocket请求,则获取请求消息体(文本),并在后面追加字符串“欢迎使用 Netty WebSocket服务,现在
Netty私有协议栈开发
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenchaohao12321/article/details/88647128 1、Netty协议栈功能设计 1.1、协议栈功能描述 Netty协议栈承载了业务内部各模块之间的消息交互和服务调用,它的主要功能如下。 (1)基于Netl的Nlo通信框架,提供高性能的异步通信能力; (2)提供消息的编解码框架,可以实现POJO的序列化和反序列化; (3)提供基于IP地址的白名单接入认证机制; (4
Netty服务端创建分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenchaohao12321/article/details/88925505 1、Netty服务端创建源码分析 当我们直接使用 JDK NIO的类库开发基于NIO的异步服务端时,需要使用到多路复用器 Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer、 SelectionKey等,相比于传统的BIO开发,NIO的开发要复杂很多,开
Netty客户端创建分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenchaohao12321/article/details/88979424 1、Netty客户端创建流程分析 Netty为了向使用者屏蔽NlO通信的底层细节,在和用户交互的边界做了封装,目的就是为了减少用户开发工作量,降低开发难度。 Bootstrap是 Socket客户端创建工具类,用户通过 Bootstrap可以方便地创建 Netty的客户端并发起异步TCP连接操作。 1.1、Nett
kotlin :hello world !
/**
* Created by jingwen.
*/
fun main(args:Array<String>){
print("hello world!")
} 自从2017年12月,开始使用kotlin写项目,最近有时间重新梳理一下这种语言. 任何计算机语言都是从hello world !
kotlin 的基本数据类型
Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型。 类型 位宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8
/**
* Created by jingwen.
*/
fun main(args:Array<String>){
//整型
var age:Int = 12;
var direc
Workiva如何使用K8S为全球3000家客户提供数据管理云平台
为全球3000家客户提供着受控协作、数据连接、细化权限等复杂的数据管理服务,将一切基于Kubernetes,要所有Kubernetes生产工作负载必须零停机,要有复杂的RBAC以应对接管要求,还要减少开发团队构建和部署新K8S服务的精力,Workiva是怎么做的?
kotlin 空类型和类型智能转换
空指针异常是java永远的痛
package com.test.com.java.utils;
/**
* Created by jingwen on 19/4/13.
*/
public class Tools {
/**
*
* @param type 0,1,2
* @return
*/
public static String getCarNameByType(int type){
String name
kotlin包package
就是命名空间,解决重名问题 包的声明(package)必须非注释行的第一行
package com.com.pkg.a
/**
* Created by jingwen on 19/4/13.
*/
class Tools(){
fun getName():String{
return "a的工具类"
}
}
package com.com.pkg.b
/**
* Created by jingwen on 19/4/13.
*/
class T
kotlin 变量和常量
常量: 使用val修饰,类似于java final,且不可以重复赋值 分为编译后常量和运行时常量 例如: val a:Int = 12;//运行时常量 const val A=110//kotlin 1.1之后才支持.1.0的不支持 变量:能重复赋值
package com.testvarAndVal
/**
* Created by jingwen on 19/4/13.
*/
fun main(args: Array<String>) {
val a = 2;//编译器智能
Kotlin Lambda表达式
用法:{[参数列表] ->[函数体,最后一行是返回值]}//不实用fun修饰,用法跟匿名函数一样 举例 val sum ={a:Int,b:Int -> a+b} 参数和返回值: 1> ( ) -> Unit //无参数 ,返回值的类型为Unit 2> (Int) -> Int //Int类型的参数,返回值得类型为Int 3> (String,(String) ->String) ->Boolean //两个参数,第一个参数为String,第二个参数为Lambda表达式,返回值为Boolean
kotlin 类成员变量(属性)和成员函数(行为)
类的成员包含两部分内容 1,成员属性:成员变量,类内部的变量 2,成员行为(功能):成员方法(函数),类内部的方法(函数) 类的成员方法:
package com.testClass
/**
* Created by jingwen on 19/4/14.
*/
class Person{
init {
println("init person")
}
}
class Student(var name:String,var age:Int)
kotlin 基本运算符和运算符重载
关键字 operater
1>任何类可以定义或者重载父类的基本运算符
2>通过运算符的函数名重载
3>对于参数个数的要求,对参数,返回值类型不作要求
运算符重载不能太随便
这点是java没有的,java的小伙伴羡慕嫉妒恨吧
package com.testOperaters
/**
* Created by jingwen on 19/4/14.
*
Kotlin 运算符重载
关键字 operater
1>任何类可以定义或者重载父类的基本运算符
2>通过运算符的函数名重载
3>对于参数
kotlin 表达式(条件表达式,中缀表达式,when 表达式)
表达式是有值的,java 的if,switch都是分支语句并不是表达式 中缀表达式是运算符重载,只有一个参数,且使用infix修饰 fun的函数 when 表达式是kotlin 替换java语言的switch语句的,功能很是强大啊 if 表达式
package com.testOperaters
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
//条件语句
var input
kotlin 循环语句(for ,while ,do while)
for循环语句
package com.testOperaters
import java.util.*
/**
* Created by jingwen on 19/4/14.
* 跟java里的for循环没多多大区别
*/
fun main(args: Array<String>) {
var arrays:Array<String> = arrayOf("jingwen","zhulian","chengcheng")
for(i in arrays.wi
kotlin 异常处理
跟java类似try {} catch(Exception e) {}finally{},写程序不要吃掉异常,要提示出来,吃掉异常的人是最无耻的. 尽管kotlin处理空指针异常很好,但是还有其他异常啊,都得需要处理好, 异常出现就程序崩溃了,老板会找你谈话的. 例如:
package com.testTryCatch
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
var lis
android 系统自带的ArrayAdapter布局也是可以修改每个条目的信息
android.R.layout.simple_list_item_1 这种布局也是可以修改的,没有解决不了的问题,只有你想不到方法 this.adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data){ @Override public boolean isEnabled(int position) { return false; //可以设置这个条目不能点击。 } @Override p
周排行