自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 jvm垃圾回收机制

垃圾回收器图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。新生代收集器:Serial、ParNew、Parallel Scavenge老年代收集器:CMS、Serial Old、Parallel Old整堆收集器: G1Serial/Serial Old最基本,最悠久的收集器,单线程进行垃圾收集工作,在进行垃圾收集时会 stop the world,即停止...

2021-10-18 22:31:54 139

原创 java的Set集合

HashSet:/*** Constructs a new, empty set; the backing <tt>HashMap</tt> instance has* the specified initial capacity and default load factor (0.75).** @paraminitialCapacitythe initial capacity of the hash table* @throw...

2021-09-03 14:35:28 138

原创 java的Map集合

对于Map的遍历,建议使用entrySet迭代器方式,在进行大量级数据时,效率会高很多。Hashtable:线程安全,其使用在操作方法上添加synchronized关键字的方法实现,效率较差,key和value不允许为null,推荐使用ConcurrentHashMap替代使用。HashMap:线程不安全,其底层实现是数组加单向链表的方式实现,当链表数据过多(默认8个)且数组大小也超过规定值时(默认64个),会转换为红黑树,如果链表长度达到一定长度,而数组大小没有达到,...

2021-08-21 22:35:01 158

原创 java的List集合

LinkedList:底层由链表实现,因此查询慢,插入删除快。LinkedList比ArrayList更加占用内存,因为LinkedList每个节点要存储前后两个节点的引用,影响较小,一般不做选择参考。ArrayList:底层由数组实现,因此查询快,插入删除较慢。扩容机制:正常情况下会扩容1.5倍(有最小扩容数 DEFAULT_CAPACITY = 10,当1.5倍后小于10时,扩容为10),特殊情况下(新扩展数组大小已经达到了最大值)则只取最大值。...

2021-08-21 22:34:06 140

原创 mybatis中在执行添加修改后获取该记录的id

<selectKey resultType="int" order="AFTER" keyProperty="id"> select last_insert_id()</selectKey>

2021-03-14 22:59:39 244

原创 sql常用函数

单行函数字符函数: length 获取参数值的字节个数 select length("john") concat 拼接字符串 select concat( last_name,"_",first_name ) as 姓名 form employees upper , lower 将参数值变大写,小写 select ...

2020-10-11 01:15:40 94

原创 读书笔记--《Flutter实战》

读书笔记–《flutter实战》欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的

2020-07-27 14:39:15 894

原创 android开发学习积累(五)

实现TextView的文字竖式显示 通过重写TextView的onDraw方法,通过调用Canvas的rotate()和translate(),将控件在画布上旋转90度,然后x往外移动,若不移动,会显示不出来,因为旋转后,文字位置其实是在画布外的...

2020-04-11 18:20:36 264

原创 android开发学习积累(四)

电话号码:国际号码区号选择控件:CountryCodePicker电话格式验证(国际号码):libphonenumber颜色渐变:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> ...

2020-04-09 11:38:03 520

原创 读书笔记 --《大话数据结构》

大话数据结构数据结构绪论数据结构逻辑结构指数据对象中数据元素之间的相互关系逻辑结构分为以下四种:集合结构: 集合机构中的数据元素除了同属于一个集合外,它们之间没有其他关系。线性结构: 线性结构中的数据元素之间是一对一的关系。树形结构: 树形结构中的数据元素之间存在一种一对多的层次关系。图形结构: 图形结构的数据元素是多对多的关系。物理结构物理结构是指数据的逻辑结构在计算...

2019-10-16 17:53:12 335

原创 APK瘦身简单实用的几步

删除无用代码以及无用资源删除未使用到xml和图片:Android Studio -> Menu -> Refactor -> Remove Unused Resources选择 Refactor 一键删除选择 Perview 预览未使用到的资源删除未使用到代码:使用Android Studio的Lint,步骤:点击菜单栏 Analyze -> R...

2019-09-09 17:25:52 173

原创 为什么说链表在插入和删除上效率要高于数组

链表和数组是两种截然不同的内存组织方式,正因如此,它们插入、删除、随机访问的时间复杂度正好相反。数组使用的是连续的内存空间,可以利用空间局部性原理,借助CPU cache进行预读,所以访问效率更高。而链表不是连续存储,无法进行缓存,随机访问效率也较低。数组的缺点是大小固定,一经声明就要占用整块连续的内存空间。如果声明的数组过大,系统可能没有足够的连续内存空间用于分配,就会导致“内存不足(...

2019-08-15 18:33:03 6772 1

原创 读书笔记 --《Effective-Java》

Effective Java代码编写原则避免创建不必要的对象(通过重用同一对象,来避免创建多个对象)一些对象的创建比其他对象的创建要昂贵得多。 如果要重复使用这样一个「昂贵的对象」,建议将其缓存起来以便重复使用。 不幸的是,当创建这样一个对象时并不总是很直观明显的。 假设你想写一个方法来确定一个字符串是否是一个有效的罗马数字。 以下是使用正则表达式完成此操作时最简单方法...

2019-08-13 14:25:12 249

原创 读书笔记 --《 java核心技术卷一》

Java核心技术卷 1第一部分(java基本介绍)java特性简单性面向对象分布式健壮性安全性体系结构中立编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码, 只要有 Java 运行时系统, 这些编译后的代码可以在许多处理器上运行。Java 编译器通过生成 与特定的计算机体系结构无关的字节码指令来实现这一特性。 精心设计的字节码不仅 可以很...

2019-07-26 22:18:11 550 1

原创 RecyclerView细节功能实现记录

监控滑动 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {...

2019-06-11 11:10:32 245

原创 解析网页(jsoup)

jsoup 可以用来解析各种网页,从而提取我们所需要的内容,使用简单便捷。学习网站:https://www.open-open.com/jsoup/attributes-text-html.htm注意点:使用Elements.select的类选择器时,若class名称带空格,可以用.代替空格进行获取。//网页代码<div class="review list">...

2019-05-28 21:38:43 897

原创 java内存回收,关于引用

java内存回收,目前普遍采用的是可达性算法,而非计数算法,即只有当对象对于GC root,也就是对象树可达时,即存在你甭到达该对象的引用路径存在时,该对象才不会被回收,也就是说,只有存在于GC root上的对象引用了你的对象时,你的对象才不会被归类为垃圾对象,当你的对象引用了GC root上的对象,而GC root上的对象未引用你的对象时,这种情况下,GC root不存在能到达你对象的路径,所以...

2019-05-26 23:35:49 170

原创 android开发学习积累(三)

Notification自定义布局RemoteViews Notification要实现自定义布局,就必须使用RemoteViews,而RemoteViews并不支持所有控件,所以在设置布局时,布局文件内的控件类型必须做好挑选,例如ConstraintLayout,RemoteViews就不支持,如果布局使用了ConstraintLayout,就会报错:android.app.Rem...

2019-05-21 15:13:53 259

原创 new String()

当执行 String a = new String(“sss") 时,若字符串常量池内无该内容(”sss“),则该操作new了两个对象,一个在常量池中,一个在堆中若字符串常量池内存在该内容(”sss“),则该操作new了一个对象,存在堆中,栈中的 a指向堆中的对象,堆中的对象指向常量池中已存在的"sss"...

2019-05-11 13:21:11 1247

原创 Logger日志框架解析

Logger简介:一款Android日志框架,简洁,可扩展性强,但是相对的,功能也要少上很多,但因为代码构成优秀,可以很轻松的在其之上扩展自己的日志功能。Logger分层:Logger:对外开放,实际使用时,我们只要通过该类就能实现其日志格式设置,日志打印输出等,但实际上使用了代理模式,该类并不实现各个打印方法,内部调用了Printer的实现类来实现各个方法。Printer...

2019-05-05 03:48:14 447

原创 Java的JVM简单学习

java跨平台:java虚拟机,java能做到跨平台的关键所在,对于不同的操作系统,代码必须转换成各个操作系统对应的指令才能执行,而java通过jvm,在java代码编译后的字节码,字节码到操作系统指令集间抽象了一层,可以理解为转换器,即把字节码转化为对应操作系统的指令,通过这样的方式实现了java的跨平台功能。java的代码执行属于边解释边执行,所以运行速度会比c语言的先编译再执行要慢上一...

2019-05-02 05:19:09 202

原创 android开发学习积累(二)

Flutter flutter快速开发,可以同时运行于ios和Android上,但是实际上很多功能其实是通过通道的方式,调用Android和ios的原生api,而且很多地方没有完善,比如日志比起Android原生log,分级少,捕捉奔溃日志麻烦等,界面绘画也很难做到一些原生的效果,公司为了快速出产品,采用了flutter做开发,然而最后还是用Android重写了所有的界面,因为在各种细节...

2019-04-21 03:22:26 154

原创 android开发学习积累(一)

Android中intent启动Activity中intent.setFlags()的作用 在页面跳转时,也就是startActivity(intent)页面跳转的的时候,对intent设置上不同的Flags,能起到不同的效果,比如:intent.setFlags(FLAG_ACTIVITY_CLEAR_TASK|FLAG_ACTIVITY_NEW_TASK);上面的设置,能在启动...

2019-03-16 23:53:13 268

原创 Android studio 配置flutter开发环境

配置环境:首先 Android studio 要3.0以上的 下载Flutter,配置环境变量//配置的环境变量PUB_HOSTED_URL=https://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn//在path里加入flutter的地址F:\Android\Flutter...

2019-03-09 11:32:34 1227

原创 java面试 --- 常用集合间的区别

ArrayList 和 LinkedList:ArrayList 底层是数组,LinkedList底层是一个双向链表,所以:查找元素ArrayList比较快插入,增加,删除则是LinkedList比较快LinkedList比ArrayList更加占用内存,因为LinkedList每个节点要存储前后两个节点的引用。Hashtable 和 Hashmap 和ConCurr...

2019-02-14 18:41:26 227

原创 java中静态代码块与代码块等执行循序

public class A { static{ System.out.println("A的static block"); } public A(){ System.out.println("A的构造方法"); } { System.out.println("A的代码块"); }}pub...

2019-02-14 14:04:21 172

原创 大数据学习之路 --- Spark(内存计算框架)

Spark是基于内存计算的大数据并行计算框架。spark基于内存计算,提高了在大数据环境下数据处理的的实时性,同时保证了高容错性和高可伸缩性。                                                                                            ---&lt;&lt;Spark大数据处理技术,应用与性能优化&gt;...

2019-02-13 16:48:27 5164

原创 大数据之路 --- Hbase(分布式数据库)

HBase是一个在HDFS上开发的面向列的分布式数据库。                                                                                                                                                              ----&lt;&lt;...

2019-02-12 18:44:51 520

原创 Java线程

一个JAVA进程运行时,至少启动了两个线程:main线程:主线程gc线程:垃圾回收线程

2019-02-07 23:48:31 162

原创 大数据之路 -- 常用辅助框架

数据转换工具sqoop:Apache的顶级项目,官方网站http://sqoop.apache.org/Apache Sqoop(TM)是一种设计工具,用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效地传输大量数据。将MapReduce程序组成,打包成jar形成Sqoop,充分使用了MR并行计算的特点加快数据传输,是连接传统型数据库和hadoop的桥梁(关系型数...

2019-02-03 17:38:30 827

原创 Spark sql之自定义聚合函数UDAF(UserDefinedAggregateFunction)

object TestUDAF extends UserDefinedAggregateFunction{ /** * 设置输入数据的数据类型 * 例如:override def inputSchema: StructType = StructType(StructField("inputColumn", LongType) :: Nil) * 这里设置了输入数据为...

2019-02-01 02:28:17 1514

原创 Scala中的::

 ::在源码的解释为:/** Adds an element at the beginning of this list. * @param x the element to prepend. * @return a list which contains `x` as first element and * which continues with this...

2019-02-01 01:55:02 289

原创 几种数据结构的优缺点

数组:优点:插入块如果知道坐标可以快速去地存取缺点:查找慢,删除慢,大小固定 链表:优点:插入快,删除快缺点:查找慢单向链表:双向链表: 栈:优点:提供后进先出的存取方式缺点:存取其他项很慢 队列:优点:提供先进先出的存取方式缺点:存取其他项都很慢 树:二叉树:优点:查找,插入,删除都快(如果数保持平衡)缺点:删除...

2019-01-29 23:42:23 2534

原创 spark sql小知识

AND和OR:AND:表示两个条件都达成。OR:表示两个条件其一达成。AND和OR可以任意组合,但要注意,数据库会先执行AND再计算OR,就像先乘除后加减一样。例子:SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003 AND prod_price&gt;=10;该语句查出...

2018-12-05 15:15:10 464

原创 大数据学习之路 --- Hive(数据仓库管理工具)

Hive 用 是一种用 SQL  语句来协助读写、管理存储在分布式存储系统上的大数据集的数据仓库软件。                                                                                                                                     ---&lt;&lt;Hiv...

2018-11-21 12:36:37 2504

原创 Redis与MongoDB

Redis:数据存储在内存上,所以不适合存储大量的数据,但也因为存储在内存上,所以数据的读写速度非常快,以Key-Value的形式存储数据,一般作为数据缓存,也就是数据中间键使用。MongoDB:数据存储在硬盘上,所以可以存储大量的数据,读写速度相对于Redis来说慢了不少,以文档形式存储数据,一般用来存储json字符串,做数据的最终存放地点使用。...

2018-11-12 10:33:53 174

原创 java并发编程之synchronized

java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,知道线程B释放这个锁,如果B线程不释放这...

2018-11-06 17:04:38 129

原创 大数据学习之路 --- Storm(分布式实时计算系统)

Storm是一个开源的分布式实时计算系统,可以简单,可靠地处理大量的数据流。                                                                                                                                         ----&lt;&lt;Storm实战构建大数...

2018-10-29 14:25:47 780

原创 Hadoop学习之路 --- MapReduce(数据处理的编程模型)

MapReduce是一种可用于数据处理的编程模型。Hadoop可以运行各种语言版本的MapReduce程序。MapReduce程序本质上是并行运行的,因此可以将大规模的数据分析任务分发给任何一个拥有足够多机器的数据中心。MapReduce的优势在于处理大规模的数据集。                                                                ...

2018-10-15 09:59:51 1653

原创 Hadoop学习之路 --- YARN(资源管理系统)

Apache YARN(Yet Another Resource Negotiator的缩写)是Hadoop的集群资源管理系统。YARN被引入Hadoop2,最初是为了改善MapReduce的实现,但它具有足够的通用性,同样可以支持其他的分布式计算模式。                                                                       ...

2018-10-07 19:46:42 1051

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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