
Java
文章平均质量分 72
晓星成
多读书,多看报,少吃零食,多睡觉。
展开
-
安卓实现本地数据库搜索历史记录功能
最近项目上有个新功能需要实现一个本地数据的搜索历史记录,在这记录一下,主要使用到的功能,以及使用的一些技术和代码。例如:项目场景:首先第一次进入搜索页面需要展示(如果有搜索历史展示搜索历史(限制最多三行,超出的自行删除)没有的话展示空页面)。有一个清除的按钮。数据是每次搜索的时候,存在本地即可。需要注意的是,如果这个有多人使用的情况下。需要添加唯一标识来区分每个人的数据。原创 2024-05-24 15:26:49 · 857 阅读 · 4 评论 -
几种常见的设计模式
工厂方法模式(Factory Method):介绍:他是一个用于创建对象的接口,让子类决定实例化那一个类,它使一个类的实例化延迟到其子类。适用于:当一个类不知道他所必须创建的对象的类的时候;当一个类希望由它的子类来指定他说创建的对象的时候;当类将创建对象的职责委托给多个子类中的某一个,并且希望将哪一个子类是代理者这一信息局部化的时候。单例模式(Singleton):保证一个类仅有一个实例,并提倡一个访问它的全局访问点。适用于:当类只能有一个实例切客户亏从一个众所周知的访原创 2021-08-03 11:32:54 · 108 阅读 · 0 评论 -
Java中的锁
Synchronized同步锁synchronized它可以把任意一个非NULL的对象当做锁。它属于独占式悲观锁,同时属于可重入锁。Synchronized作用范围作用于方法时,锁住是对象的实例(this); 当作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PerGen(jdk1.8则是metaspace),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁,会锁所有该调用改方法的线程。 synchronized作用于一个对象实例时,锁住的是所有以该对象原创 2021-06-10 19:30:08 · 132 阅读 · 0 评论 -
Java基础之数据结构
栈栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶。它是后进先出的。对栈的基本操作只有push(进栈)和pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。队列队列是一种特殊的,特殊之处在于他只容许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端叫做对头。链表链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而 L.原创 2021-06-08 21:39:55 · 133 阅读 · 0 评论 -
Java基础之GC回收
什么是GC垃圾回收gc( garbage collection) : 即垃圾收集, 是指 JVM 用于释放那些不再使用的对象所占用的内存。什么时候出发GC手动出发:当前程序去调用System.gc()的时候触发。注意:GC回收的时候程序会停止运行,同时回收的过程中,会消耗大量的系统性能,所以一般情况下我们不会主动去调用gc回收方法。手动触发:根据Eden区和From和Space区的内存大小来决定的。当内存大小不足是,则会启动GC线程并停止应用线程。程序再次申请内存的时候,系统(jvm)发原创 2021-06-07 21:07:04 · 270 阅读 · 0 评论 -
Java的集合
Arraylist数组Arraylist是最常用的list实现类,内部是通过数组实现的,他容许对元素快速随机访问。数组的缺点每一个元素之间不能有间隔,当数组大小不能满足时需要增加存储能力,就要将已经有数据的数组复制到新的存储空间中。当Arraylist的中间位置插入或者删除元素的时候,需要对数据进行复制、移动,代价比较高。因此,它适合随机查询和遍历,不适合插入和删除。LinkList链表LinkList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还.原创 2021-06-03 19:46:51 · 76 阅读 · 1 评论 -
Java多线程实现的三种方式
多线程三种方式JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。s.原创 2021-06-02 19:35:21 · 81 阅读 · 0 评论 -
Java基础之八大数据类型
</font>@[TOC](文章目录)<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"># 前言<font color=#999AAA >学习java这门技术也越来越重要,很多人都开启了学习java学习,本文就介绍了java学习的基础内容。</font><hr style=" border:solid; width:100px;...原创 2021-06-01 20:23:46 · 94 阅读 · 0 评论 -
Java基础之线程池
线程池的原理:线程池是管理一组同构工作线程的资源池。合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。线程池的使用场景:Java中经常需要用到多线程来处理一些业务,我们非常不建原创 2021-05-31 20:32:48 · 96 阅读 · 0 评论 -
Java基础之枚举
基本概念:枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一个特殊类,他和普通类一样可以使用构造器、定义陈原变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类。枚举的优缺点:优点:类型检查,有效的检查 枚举作为一个类,可以有自己的属性以及自己的方法。 和常量相比,无序查看文档和源代码就能直接知道所有可能的返回值,方便编码。缺点:由于Java中支持继承,因此枚举举例不能在继承其他类。 使用枚举作为返回值可能造成问题其实大家都知道就是客户端和服务端版原创 2021-05-30 19:06:46 · 130 阅读 · 0 评论 -
Java基础之泛型
一 、介绍Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、定义泛型就是指明集合中存储数据的类型。如果没有指明数据类型,那集合可以存储任意类型,就会存在上述提到的类型转换异常的安全隐患。三、提出背景Java集合(Collection)中元素的类型是多种多样的。例如,有些集合中的元素是Byte类型的,而有..原创 2021-05-28 19:57:14 · 97 阅读 · 0 评论 -
Java基础之常量
定义常量的定义:**在程序执行的过程中,其值不可以发生改变的两就是常量。常量不同于其他常量值,他可以在程序中用符号来代替常量值使用,因此在使用前必须先定义才可以使用*。常量值的定义:常量和常量值是不同的概念,常量值又称为字面常量,他是通过数据直接表示的。关系:常量值四常量的具体和直观的表现形式,常量是形式上的表现。通常在程序中既可以直接使用常量,也可以直接使用常量值。**分类- 整数常量 : 所有整数- 小数常量 : 所有小数- 布尔常量 : 只有true和false.原创 2021-05-27 10:42:25 · 533 阅读 · 0 评论