- 博客(82)
- 收藏
- 关注
原创 hive与clickhouse了解
hivehive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析clickhouseCl
2021-04-01 17:04:57
7224
原创 元数据
元数据是用来描述数据的数据(Data that describes other data)。下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子:(她)年纪已经不轻,三十岁上下,个子高挑,身材匀称,黑黑的眉毛,红红的脸蛋--一句话,不是姑娘,而是果冻,她那样活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑,动不动就发出一连串响亮的笑声:哈,哈,哈!这段话里提供了这样几个信息:年龄(三十岁上下)、身高(个子高挑)、相貌(身材匀称,黑黑的眉毛,红红的脸蛋)、性格(活跃,吵吵嚷嚷,不
2021-03-17 09:53:25
168
原创 维度与指标
指标与维度最基本的作用是描述与衡量,维度与指标往往成对出现,搭配使用,往往通过组合筛选一系列指标来形成一个维度,也可以理解为不同的维度需要不同组合指标来实现。指标 用于衡量事物发展程度的单位或方法 指标需要经过加和、平均等汇总计算方式得到,并且是需要在一定的前提条件进行汇总计算, 如时间、地点、范围,也就是我们常说的统计口径与范围。指标可以分为绝对数指标和相对数指标,绝对数指标反映的是规模大小的指标,如人口数、GDP、收入、用户数,而相对数指标主要用来反映质量好坏的指标,如利润率、留存率、覆盖
2021-03-16 17:39:00
2123
原创 2020年10月江苏省计算机二级python考完回顾一下
试卷上的计算机基础部分比较随缘,我是跟着vfp后面的计算机基础概括复习了一遍,考点覆盖大概一半吧,还有的就是新的没见过的考点。然后是python理论部分,涉及到的有字符串操作,字典,数组,等简单函数的操作。比较简单,就是要细心一些别跳步漏步操作。最后就是编程部分,找错一题是有三到四个空吧,基本都是比较明显的错误。代码补全一题,考了字典的两个函数,记得就行。然后是两个编程题,一个是求菲波数的和,会给出定义的。最后一题主要是字典,大概是多个字典然后嵌套获取值,就是要注意一下大小写。然后最重要的!!编程
2020-11-11 13:26:06
1558
1
原创 江苏二级python复习之函数部分
刷题过程中琐碎常用函数sort(cmp=None,key=None,reverse=False)sorted(iterable,cmp=None,key=None,reverse=False)sort是应用在list上的方法,是在原地修改,返回值为nonesorted可以对所有可迭代的对象进行排序操作,当值是字符串时,默认以asc码对照比较reverse默认是False(升序)cmp–比较函数,比较什么由参数key决定,例如:cmp(e1, e2) 是具有两个参数的比较函数,返回值:负数(e
2020-10-17 17:11:39
237
原创 江苏二级python之面向对象
许久没有看python了,正好借此再复习类由class定义以双下划线开头但不以两个双下划线结束,则表示该成员为私有成员以__init__表示构造函数,构造函数是类加载的时候默认调用的。类的方法都默认有self参数,该参数不需要传值对象名.类变量可以修改该对象的变量值,但是不会影响到类里的类.变量会影响到类中的,不会影响到对象中的以@property修饰的成员方法,则说明这是一个属性以@classmethod修饰的是类方法,一般以cls做第一个参数名以@staticmethod修饰的是
2020-10-17 15:22:34
203
原创 江苏二级python复习之一些散碎知识点
/与//的区别 -/是除法,获得一个浮点数 //是向下取整,获得一个整数进制的表现 二进制:前面加0b,如0b1001八进制:前面加0o,如0o3562十六进制:前面加0x,如0x2af3(字母a-f大小写随意)==与is的区别 ==比较的是值is比较的是地址continue是进入下一层循环break是跳出当前循环条件表达式里不允许使用赋值语句元组的儿不可更改,孙可以更改lambda表达式属于可调用表达式如果传递给函数的是可变序列,并且在函数..
2020-10-17 14:02:50
263
原创 关于synchronized的底层实现原理,锁的优化,及锁的四种状态
synchronized在1.5之前是个重量级锁。但是从JDK6开始,就对synchronized的实现机制进行了较大调整,包括使用JDK5引进的CAS自旋之外,还增加了自适应的CAS自旋、锁消除、锁粗化、偏向锁、轻量级锁这些优化策略。由于此关键字的优化使得性能极大提高synchronized是在软件层面依赖JVM,而j.u.c.Lock是在硬件层面依赖特殊的CPU指令。一,1,synchronized同步块的使用是给出一个对象锁,每个对象锁都是一个监视器锁(monitor)1,monitorent
2020-08-23 23:54:31
197
原创 j2ee设置字符与校验登录
字符乱码问题设置返回字符的编码setCharacterEncoding(编码)告诉客户端浏览器该用什么解码setContentType("text/html;charset=utf-8")校验登录 创建session对象,然后在servlet里,登录成功时,保存到session里 HttpSession session=req.getSession();session.setAttribute("loginname", username); 在过滤器里设置进入用户主页面都需要过
2020-08-22 22:11:24
73
原创 file中常用的方法
File f = new File(“d:/file/a.txt”);f.delete();删除文件f.length();获取文件的大小f.exists();判断文件是否存在f.getname(); 获取文件的名字f.mkdirs();在父文件夹下创建,如果没有就不创建f.mkdir();当父文件夹存在时,才可创建。如果没有父文件夹则无法创建f.list(); 获取file文件的所有子目录的名字,string类型f.listfiles(); 获取file文件的所有子目录的名字和文件,fi
2020-08-22 16:55:49
95
原创 get与post的区别
get与post的区别?(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)(2)post发送的数据更大(get有url长度限制)(3)post能发送更多的数据类型(get只能发送ASCII字符)(4)post比get慢(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据 。(6)服务器随机接受GET方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕而PO
2020-08-22 16:22:27
92
原创 java集合的总体复习
集合与数组的区别?数组定长,集合可变长数组可以是基本类型,也可以是引用类型数组只能存储同一种数据类型,集合可以存储多种数据类型collection常用的方法?list的特点,可重复,有序,按照存储顺序保存arraylist 非安全vectorlinkedlist...
2020-08-21 18:32:30
91
原创 hashtable与hashmap,hashset与hashmap的区别
hashmap与hashtable 1,hashmap的键值都可以为空,hashtable不可以为空 2,hashmap是非同步,hashtable是同步 3,hashmap是继承的abstractmap,hashtable是继承的dictionary。 4,Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。 HashMap默认的初始化大小为16。之后每次扩充,容量变为原来的2倍。hashset与hashmap的区别 1,hashset是实现的set接口,ha
2020-08-13 14:55:15
189
原创 J2EE三大组件以及页面设置安全session和cookie
创建顺序监听器----过滤器-----拦截器servlet拦截器接受用户的请求,并返回结果需要继承 httpservlet要重写doget,dopost方法通过getparameter()获取用户客户端提交的数据主要用于处理用户对数据库的增删改查查询操作filte过滤器接受用户的请求,并设置用户的请求需要实现implements filter接口需要重写三个方法:init(启动项目的时候执行),dofilter(资源拦截的时候执行),destory(正常关闭项目的时候执行)常用于字符过
2020-08-07 12:09:30
201
原创 一些可能的小知识点
如何防止sql注入攻击? 什么是sql注入攻击,在http中注入恶意sql代码,服务器在使用数据构建数据库的时候,恶意代码被一起执行 如何防制? 1,过滤特殊字符入单引号双引号 2,使用预编译的preparestatement代替拼接sql 3,web端进行有效性检验并限制字符串的长度ioc的底层实现? ioc就是控制反转,是一种设计思想。 在spring中,就是由spring控制对象的生命周期和对象之间的关系。 也就是创建对象的控制权转移,以前是由代码自己控制,现在转移到第三方。 是
2020-08-06 14:36:25
79
原创 反射的基本概念及三种创建方式
反射的编程思想 在类的运行期间,通过对class对象的解析,可以获取这个类的属性,方法,构造函数,并执行获取 属性,构造函数和方法,主要用于构建平台和框架获取class对象的三种方式 1 类名.class 2,对象名.getclass 3,class.forname(包名.类名)常用第三种,第一种需要导包,依赖强,不导包会报错第二种已经有对象了还要反射干啥在使用第三种的时候回有classnotfoundexception的检查异常getDeclaredFields()获取所有属性g
2020-08-06 10:29:01
956
原创 socket的使用
客户端的socketsocket是一整套java的封装api,通过socket可以进行跨进程级的通信和数据交换,可以进行分布式的计算 socket soc=new socket(host,port); 客户端向这个接口发起请求服务器端的socket serversocket sst=new serversocket(port); 客户端对这个端口保持监听 socket=sst.accept(); 握手成功,实现连接简单的运用...
2020-08-06 10:10:46
175
原创 二叉树,二叉查找树的搜索,插入,删除
树树是元素的集合,每棵树由多个节点)组成,用以储存元素。某些节点之间存在着一定的关系,用连线表示,连线称为边或者链接。边的上端点成为父节点,下端称为子节点。最顶端的称为根节点,其他没有子节点的节点称为叶子节点或者叶节点。总结 一个树是元素的集合。 一个树可以为空,即没有元素,此时这个树称为空树。 如果一个树有元素。那么根节点与其子树的根节点的连接叫做边或者称为链接。特征:高度,深度节点高度:是自下到上的数,节点到叶子结点的最长路径,(从1开始)节点深度:是自上到下的数,根节点到叶节点
2020-08-05 22:42:39
192
原创 break,return,countinue
continue 中断当前循环的当前次,继续当前循环的下一次(如果有),继续执行后面的代码break 中断当前循环的所有次,不再继续当前循环,继续外层嵌套循环的下一次(如果有),继续执行后面的代码return 中断所有循环,且不再执行后面的代码...
2020-08-05 16:26:16
163
原创 java的四种内部类
什么是内部类? 内部类就是写在外部类中的类,或者类的方法中的类。为什么要使用内部类? 每一个内部类都可以单独实现一个接口, 外部类是否实现了接口对内部类继承实现没有影响。 内部类使多重继承的方案变得完整。使用内部类的一些注意事项 //在内部类内调用外部类的方法 //如果与外部类有同名方法,需要outclass.this.method //如果不是同名方法可以直接调用内部类实例化的方法 Outclass o = new Outclass(); O
2020-08-05 15:36:04
138
原创 闭锁,珊栏与信号量,vlolatile
闭锁(CountDownlatch) 主要用到countDown()方法与await()方法 每到CountDown就使计数器减一,await会等到计数器==0的时候,解锁栅栏(CyclicBarrier) cyclicbarrier ccb=new cyclicbarrier(num); 主要方法是await方法,每个有栅栏的线程都会在执行到await处停住, 直到有num个数量的持有await的线程执行到await。 这些线程才会越过栅栏继续往前运行CountDownLatch
2020-08-05 14:48:52
204
原创 明锁,reentrantlock公平锁与非公平锁,互斥与通信,awit与signal使用
lock又叫明锁,他是一个类。而synchronized是在jvm层面的 lock loc1=new reentrantlock(); lock默认是非公平锁 lock loc2 = new reentrantlocklock(true); true是公平锁互斥是依靠lock与unlock就可以实现,Condition实现通信。一般情况下reentrantlock就可以满足,但是当场景变得复杂的时候,仅仅依靠reentrantlock不够,那么这个时候就需要condition来解决。cond
2020-08-05 13:51:48
376
原创 synchronized的使用以及wait,sleep,yield,join的使用
synchronized又叫暗锁,同步锁,用于保证线程共享资源的安全。 synchronized用法 1,用于实例方法中 这个时候需要使用一个对象。如果new了多个对象,那么无法实现同步。 其他对象不能获取被synchronized锁定的方法。但是可以获得其他未被锁定的方法 2,用于同步块中 需要创建一个对象锁, 一个线程持有此处对象锁时,其他线程不可以获得,进入阻塞状态。 相比较于实例方法,提高了性能 3,用于静态方法
2020-08-05 11:23:21
510
1
原创 多线程的一些基础知识及线程的四种创建方式
程序:程序就是一段静态的代码,一串指令,一个静态的对象进程:就是一个程序执行的过程。进程要同时做几件事时,每一个就是一个线程。线程:线程是一个程序内部一个执行路径并行:就是多个CPU跑多个线程并发:一个CPU跑多个线程一个线程在被启动死亡后不可以再次被启动。线程的调度策略时间片:同优先级先到先使用抢占式:高优先级会抢占低优先级的执行级,但是不一样。只是说高优先更有可能抢占线程。并不是一定。设置:当前线程对象..setPriority(num)如此类方式设置。start与run的区别s
2020-08-05 10:14:35
101
原创 文件与流,还有序列化与反序列化
文件 public static void main(String[] args) { File f = new File("e:/file/text/cty.txt"); if(!f.getParentFile().exists()){ f.getParentFile().mkdirs(); } try { f.createNewFile(); } catch (IOException e) { e.prin
2020-08-04 15:26:47
229
原创 string与stringbuffer和stringbuilder的区别。以及String常用的方法
String String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于 生成了一个新的 String 对象, 然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间, 所以经常改变内容的字符串最好不要用 String 。stringbuffer和stringbuilderstringbuffer是线程安全stringbuilder是线程非安全StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并
2020-08-03 19:23:18
138
原创 异常处理的不完整总结
throwable是java异常的顶级父类。throwable派生出error类和exception类error类错误,是error类或其子类的实例,错误是jvm本身的错误。很少出现,无法通过程序员解决。exception类异常,是运行期间各种不被期望发生的事件,可以被异常处理机制使用处理。exception类分为两类检查异常和非检查异常非检查异常runtimeexception类的子类。在编译时,不会发现和处理的异常,这些一般建议是修改代码而不是异常处理机制处理。除0错误A
2020-08-03 16:38:47
178
原创 数组的创建
可以 int a[] = new int[4]; int a1[] = new int[]{1,2,3,4}; int a3[]={1,2}; int[] a = new int[4]; int[] a1 = new int[]{1,2,3,4}; int[] a3={1,2}; 这两种都可以
2020-08-03 16:05:46
115
原创 网络协议
tcp/ip协议TCP/IP协议是在传输层,不能穿越防火墙。ip协议是把输出从一台计算机发送到另外一台计算机上,数据被分割成多块,路由器决定如何把包发送出去。ip的特点是会经过多个路由器,不保证都能到达,不保证按照顺序到达。tcp协议建立在ip协议之上,通过三次握手(客户端发送信息,服务器回复,客户端发送),为了保证数据能够顺序全部到达。方式:对每个包编号。一个tcp报文,除了要包含传输数据外,还要包含源ip和目标ip。源端口和目标端口。80端口分配给http协议。21分配给ftp服务。
2020-08-03 15:52:42
123
原创 集合
collection是集合的顶级父类接口List 有序可重复集合 linkedlist 基于双向链表,线程安全,增删改快,查询慢 但是,可以通过push形成栈的形式,后进先出,通过pop()删除。 vector 线程安全,基于数组,增删改快,但是查询慢 arraylist 线程非安全,基于数组,查询快,但是增删改慢set无序不可重复集合 set的遍历是通过迭代器。 第一种:通过map.keyset() 。第二种map.entry(). 第三种:通过迭代器iterator
2020-08-03 15:28:16
108
原创 abstract抽象类与interface接口的区别
抽象类与接口的共同点 (1)都不能被实例化 (2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。不同点: 接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现。 接口都是抽象方法。默认有abstract。(java 1.8,接口中可以有方法体。default类型的方法。) 接口中变量必须被赋予值,前面默认都有 final static ,即常量。 抽象类中的变量可以修改。 抽象类可以有构造函数,抽象方法,实例方法。
2020-08-03 14:07:14
160
原创 java面向对象之多态
多态概念同一个方法名,不同的实现结果作用: 可以用于解除模块与模块之间的耦合性。 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性方法重载: 编译时多态,在一个类中,方法名相同,返回值类型不一定相同,参数列表不同,调用哪个方法由参数决定。方法重写: 运行时多态,在继承关系中,子类与父类有相同的方法名, 相同的参数列表,相同的返回值类型; 方法重写的时候,如果父类没有抛出任何异常,那么子类只可以抛出运行时异常,不可以抛出编译时异常。 如
2020-08-03 11:19:03
136
原创 java面向对象之继承&&super()与this()的学习
继承概念及作用: 将不同类中可能有的共同属性和方法,抽取出来定义成一个类。 实现了代码的重用,减少代码的冗余,易于维护。基础知识 java是单继承,只能有一个父类,不允许多继承。 子类在创建对象的时候,会首先调用父类的构造方法,然后再调用自己的构造方法。 当父类没有提供无参的构造函数时,子类的构造函数必须显式的调用父类的构造函数。使用super() 如果父类提供了无参的构造函数,子类默认的调用父类无参构造函数。代码 package object;public class Exte
2020-08-03 10:52:31
104
原创 匿名构造块,静态块,静态方法,构造函数的调用顺序。
基本概念: 静态块是在类的加载时候就调用的,静态块只调用一次。 如果一个类中有多个静态对象,按照先后顺序调用。 匿名构造块是在构造函数调用前调用的。 构造函数是在构建函数的时候调用的。一图直接看懂,直接上代码public class Gouzao {public static Gouzao g1 = new Gouzao();static { System.out.println("我是静态块");}{ System.out.println("我是匿名构造块");
2020-08-03 10:21:11
256
原创 java虚拟机浅谈
什么是虚拟机? java虚拟机就是通过软件模拟出完整的硬件功能,可以模拟各种计算机功能虚拟机有什么作用? 跨平台性,使java在不同平台上运行时不需要重新编译。 实现方式,jvm屏蔽了与具体平台的相关信息。 java编译程序就只需要生成在jvm上运行的字节码。就可以在不同平台上面执行。 jvm在执行class字节码文件时候,将文件解释成具体平台的机器指令执行。虚拟机的执行过程? jvm执行的三个过程:1)、加载class文件;2)、管理并分配内存;3)、执行垃圾回收机制。什么是垃
2020-08-03 09:59:50
123
原创 多表查询,差集并集交集查询等多种查询,以及一些些许使用数据库注意(更新)
聚合函数不能在where中使用。差集关键字 minus 差集并集关键字union all 不过滤并集union 过滤并集ps:mysql没有全连接,通过union关键字实现,中间不用加join交集关键字intersect 交集 交叉连接cross join 笛卡积等值连接与不等值连接都是 join on 后面判别条件不同。...
2020-07-31 16:17:27
638
原创 存储过程,自定义函数,触发器,游标
存储过程概念 存储过程就是一组用来实现一个任务的sql语句集。保存在数据库中。 存储过程只要编译一次,第一次编译之后可以直接调用,用户给出 传入参数执行他,存储过程可以返回一个或者多个结果集。基本创建方式 create or replace procedure name_procedure ( input_name in type,--传入值 output_name out type --传出值 ) as local_variable_name1 type,--局部变量
2020-07-31 15:44:07
260
原创 sql一些查询优化
1,创建表时,应尽量用varchar代替char,节省空间2,select的时候尽量避免使用 select * from table 。只查询需要的字段3,在where ,groupby,orderby 经常涉及的列建立索引4,不建立不必要的索引,提高性能5,在空值的地方尽量设置默认值0,代替null6,在多个连续值得地方,使用between代替in ,not in7,在where 处避免使用函数式。...
2020-07-30 16:06:49
72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人