- 博客(34)
- 收藏
- 关注
原创 反射--java
验证 : 主要进行正确性的校验(class文件) cafe babe “咖啡宝贝” 魔法数字。配置文件里面一般放配置信息 , 数据库配置信息, 第三方服务的配置信息(账号信息 )void set(Object obj, Object value):赋值,传入对象。可保存在流中或从流中加载。Properties() 创建一个无默认值的空属性列表。Object get(Object obj):获取值,传入对象。解析: 把符号引用替换为直接引用(真实的内存地址)类表示了一个持久的属性集。
2024-01-01 21:40:20
851
原创 go语言TCP 文件传输demo
网络文件传输 – 这里我们做一个文件传输的demo首先说一下命令行参数,这是在main函数启动时,用于向整个程序传参。语法为: go run xxx.go argv1 argv2 argv3xxx.go :第0个参数。argv1: 第1个参数。。。后面以此类推我们文件传输 发送端 分为以下几步:获取文件名 – 不包含路径建立链接 Dial发送文件名给服务器接受服务器的回执判断是否是 “ok”是ok发送文件内容conn我们首先要获取文件的属性使用函数如下 //1 提
2022-04-23 10:39:20
475
原创 go语言网络web编程基础 -- TCP/IP和UDP
socket 编程:在网络通信过程中,socket一定是成对出现通信过程:1.mac地址(不需要用户指定) (ARP协议)Ip —> mac2.IP地址 (需要用户指定) — 确定主机3.port端口号(需要用户指定) — 确定程序一、不能使用系统占用的默认端口。 5000+端扣我们使用(8080)二、65535为端口上限网络应用设计模式:c/s:优:数据传输效率高、协议选择灵活。缺:工作量打、安全性构成威胁。b/s:优:开发工作较小、不受平台限制、
2022-04-01 19:24:53
3598
原创 go语言中锁与条件变量+操作系统的pv操作
首先我们介绍一下死锁,看看它的定义死锁 : 不是一种锁,而是一种错误使用锁导致的现象1.单go程自己死锁channel应该在至少2个以上的go程中进行通信,否则死锁2.go程间channel访问顺序导致死锁使用channel一端读(写),要博阿正另一端写(读),同时有机会执行,否则死锁3.多go程,多channel交叉导致死锁A go程,掌握M的同时,尝试拿N;B go程,掌握N的同时尝试拿M2,3类型死锁的例子func main11(){ ch:= make(chan int)
2022-03-23 21:14:46
707
原创 Go 语言中select
select的作用:go可以监听channel上的数据流动select用法类似switch,但是select的每个case语句里必须是一个IO操作
2022-03-19 11:10:12
382
原创 go语言通道channel 的用法汇总
channel的定义:make(chan string):ch:= make(chan string)channel同步,数据传递:写端: ch<- “hello” ---- 写端写数据,读端不在读,阻塞读端 : buf := <-ch ---- 读端读数据,同时写端不再写,读端阻塞len(ch) : channel中剩余未读取数据个数。cap(ch) :通道的容量...
2022-03-18 12:00:55
2185
原创 golang 的并行与并发 入门
golang的并行和并发基本操作 -- Goroutine和channel并行: 借助多核Cpu实现。并发: 多个计算任务顺序执行,轮换使用cpu时间轮片进程并发 :程序 : 编译成功得到的二进制文件 占用 磁盘空间 。 死的进程 : 运行起来程序。占用系统资源线程并发:线程:LWP轻量级的 进程。 最小的执行单位进程:最小的系统资源分配单位同步():协同步调。规划先后顺序。
2022-03-14 16:31:13
513
原创 golang基础底层强化
底层知识补充1.栈帧 :用来给函数运行提供内存空间,取内存于stack上,当函数调用时,产生栈帧,函数结束时,释放栈帧栈帧存储(一个函数对应一块栈帧):①局部变量。②形参。③内存字段描述值如果有函数调用,则被调用的函数产生的栈帧连续存放2.指针使用注意:空指针:未被初始化的指针,指向nil野指针:被一片无效的地址空间初始化3.在heap上申请一片内存 地址空间p1 = new(int)p2=new(string)fmt.Printf("%q",*p2) //打印go语言格式的字符串4
2022-03-06 11:39:21
606
原创 golang中字符串的处理
在这里仅仅总结一些常用的方法,更多方法请参考以下函数均在strings包里面Contains: 判断一个字符串是否在另外一个字符串中。Join: 字符串连接Index :在一个字符串中查找某个字符串的位置Repeat: 某个字符串重复多少次,返回的是重复后的字符串Replace : 在s字符串中,把 old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换...
2022-02-23 19:03:42
738
原创 golang中文件的处理
文件相关的操作均在 os 包里,每次对文件进行操作需要导入 os包1 .最基本的就是文件的创建,,需要Create函数,该函数返回两个值,一个事文件的指针,还有一个是error类(同时我们记住每次文件调用完毕需要使用Close()函数将其关闭,避免占用系统资源)2 .文件写入我们可以使用①指针.WriteString(“内容”),返回两个值,一个长度,一个错误类型②Write(b []byte )③WriteAt(b []byte, on int) ,需要配合 指针.Seek(0,io.See
2022-02-22 21:57:23
556
原创 go语言深入浅出--只有c语法基础的人如何入门go语言(目前截止到函数)
其实golang和python有点像,先给出一个最简单的go程序吧,我们熟悉的Hello Worldpackage main//主函数所在的包一定是 main//主目录下的文件一定要使用package mainimport "fmt"// 导入系统包 标准输入输出包//func 函数格式 main 函数名 程序有且只有一个主函数func main(){ fmt.Println("Hello world12")//用ln是带换行的 fmt.Print() var sun int = 50
2022-01-10 17:54:25
417
原创 JAVA集合类库(下篇)
泛型机制(熟悉)1.基本概念通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。为了避免上述错误的发生,从Java5开始增加泛型机制,也就是在集合名称的右侧使用<数据类型>的方式来明确要求该集合中可以存放的元素类型,若放入其它类型的元素则编译报错。泛型只在编译时期有效,在运行时期不区分是什么类型。2.底层原理泛型的
2022-01-08 13:39:49
71
原创 java集合类库 (上篇)
集合的框架结构Java中集合框架顶层框架是:java.util.Collection集合 和 java.util.Map集合。其中Collection集合中存取元素的基本单位是:单个元素。其中Map集合中存取元素的基本单位是:单对元素。1.Collection集合基本概念java.util.Collection接口是List接口、Queue 接口以及Set接口的父接口,因此该接口里定义的方法既可用于操作List集合,也可用于操作Queue集合和Set集合。常用的方法(一定要练熟、记住)
2021-04-05 10:03:18
226
1
原创 可变字符串类的总结讲解
基本概念由于String类描述的字符串内容是个常量不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:“ab”。StringBuffer类是从jdk1.0开始存在,属于线程安全的类,因此效率比较低。StringBuilder类是从jdk1.5开始存在,属于非线程安全的类,效率比较高。Strin
2021-04-01 16:26:03
232
原创 数据的统计指标
什么是统计指标体现总体数量特征的概念和数值根据数据分析的目的不同统计指标也会发生变化比如我们选择一个理财产品,那么它的往期业绩、风险系数、年化收益都是我们的统计指标有下面几种分类①总量指标: 特定条件下的总规模、总 水平或总工作量,是一种最基本的统计指标,比如GDP\总人口、总工作量②平均指标:用一个数字显示其一般水平,集中趋势指标③相对指标:两个有联系的下你在那个数值相比得到的比率,描述的是部分和总体相对关系,而不是总体的情况还有几个数据需要注意 :比例、比率、倍数比例 = 各数据/总比
2021-04-01 12:26:14
674
原创 什么是数据?
数据是什么从定义上来说,数据就是对食物的描述和记录根据数据的特性,可以对数据进行分类:定类数据(颜色、性别):①按照类被属性进行分类,各类别之间是平等并列;②这种数据不带有数量信息,并且不能在各类别间进行排序;③主要数值运算:是计算每一类别中的项目频数和频率。定序数据(受教育程度):①数据之间可以进行排序,比较优劣②通过将编码进行排序,可以表示之间的高低差异定距数据(年龄、温度):①具有一定单位的实际测量值②定距数据的精确性比定类数据和定序数据更高③可以计算出各个变量之间的实际差距
2021-04-01 11:21:43
3199
原创 关于javaSE语法中容易被忽略的小细节 (保持更新)
1.在逻辑运算中存在一个短路特性①对于逻辑与运算符来说,若第一个表达式为假则结果为假,此时跳过第二个表达式;②对于逻辑或运算符来说,若第一个表达式为真则结果为真,此时跳过第二个表达式2.赋值表达式 如(a=5)的值为5;3.两个byte变量相加,会自动转换为int类型,byte+int也会自转为int,所以如果继续使用byte类型,需要进行括号强行转换。(使用+=运算符时,会自动再强行转换为byte)...
2021-03-22 18:00:46
131
原创 java中@注解 Annotation 的总结(知识点全在这里了)
注解的基本概念• 注解(Annotation)又叫标注,是从Java5开始增加的一种引用数据类型。• 注解本质上就是代码中的特殊标记,通过这些标记可以在编译、类加载、以及运行时执行指定的处理。注解的语法格式• 访问修饰符@interface 注解名称{ 注解成员; }• 自定义注解自动继承java.lang.annotation.Annotation接口。• 通过@注解名称的方式可以修饰包、类、成员方法、成员变量、构造方法、参数、局部变量的声明等。注解的使用方式• 注解体中只有成员变量
2021-03-20 22:07:57
431
原创 Enum类
所有枚举类都继承java.lang.Enum类,常用方法如下statci T[] values()返回当前枚举类的所有对象 ,T为泛型String toString返回枚举类对象的名称,当打印引用变量时,会自动调用toString方法int ordinal()获取枚举对象在枚举类中的索引位置static T valueOf(String str)将参数指定的字符串转为当前枚举类的对象(该字符串名称必须在枚举类型中存在)int compareTo(E o)
2021-03-20 21:59:05
49
原创 java内部类总结
内部类就是在类的内部存在的类1 普通内部类普通内部类和普通类一样可以定义成员变量、成员方法以及构造方法普通内部类一样可以使用fianl、 abstract、private、protected创建普通内部类之前必须先New一个外部类对象内部类中访问内部类的成员变量(cnt)用 this.cnt来访问、外部类(Normal)的成员变量(cnt)用 Normal.this.cnt来访问2 静态内部类静态内部类不能直接访问外部类的非静态成员。静态内部类可以直接创建对象。如果静态内部类访问外部
2021-03-20 17:08:08
97
原创 java中多线程相关
要提到线程,就必须说到一个类Thread和一个接口Runnable,这里我们要注意,Thread类继承了Runnable的接口线程的创建1、在Java中负责线程的这个功能的是Java.lang.Thread 这个类可以通过创建 Thread 的实例来创建新的线程。 2、每个线程都是通过某个特定Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。 3、通过调用Thead类的start()方法来启动一个线程。 构造方法如下Thread() 创建一个线程对象Thre
2021-02-10 23:56:21
260
4
原创 关于自己编写的头文件在VS2013中无法加载的情况解决办法
先写了一个头文件 Myheadfile.h然后在 App.cpp 中 要包含上述头文件 即要写:#include “Myheadfile.h”可是提示我出错 :“VS2013中无法打开源文件”,搜了不少资料,才知道原来是没有添加该头文件所在的路径我的项目下新建的头文件为 Myheadfile.h找到其在硬盘上的路径,E:\VSPROJECT\C++\Hellohead\proj.w...
2019-01-23 22:04:16
1777
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人