
Java
文章平均质量分 62
认真的小尹
圈子不同,不必硬融。
余生不长,和不一样的人在一起,就会有不一样的人生。
和优秀的人同行,能帮助你遇见更好的自己。
和舒服的人在一起,你会觉得舒服又随意,即使默默不语感觉也惬意。
展开
-
数据结构之队列
特点——先进先出:只允许一端进行插入操作,另一端进行删除操作的 线性表插入一段是队尾,删除的一端是队头存储方式——顺序存储和链式存储顺序存储用数组实现假设有N个元素的一个队列,数组下标为0的一端是对头,入队操作就是通过数组下标一个个顺序追加,不需要移动元素,如果删除对头元素,后面的元素就要往前移动,这种方式性能不高顺序队列的实现代码如下:为了提高队的性能,于是出现了循环队列 就是有两个指针,front指向队头,rear指向对尾元素的下一个位置元素出队时front往后移动,如果到了对尾则转到头部,同理入原创 2022-06-13 10:58:50 · 34540 阅读 · 2 评论 -
数据库的三大范式
当你应聘后端岗位的时候,数据库的知识必不可少,今天给大家分享一下数据库三大范式的通俗理解第一范式:无重复的列第二范式:属性完全依赖于主键第三范式:属性不依赖于其他非主属性总结:第一范式(1NF)原子性:保证数据不可再分第二范式(2NF)前提:满足第一范式每张表只描述一件事情,就是主键对应着所有信息第三范式(3NF)前提:满足第一和第二范式第三范式需要保证表中的数据和主键直接相关,而不是间接相关注意:阿里巴巴要求 关联查询的表不得超过3张,数据库的性能更加重要,适当考虑规范性就好其实目前关系数据库有六种范式:原创 2022-06-14 22:06:30 · 53678 阅读 · 3 评论 -
华为实习面试(二)
这是来自一位学长的 (业务主管综合面)4.29下午2:10分,全程20min学长的视角:主管也是真的很nice!我每次回答问题后都给我说谢谢,搞得我都不好意思了,整个过程非常随和,完全没有架子,很耐心的给我解释问题,最后退出还说非常感谢面试华为,体验超好,面完五分钟官网刷新通过,十分钟短信通过。总结一下吧,总的来说,我这次华子的面试准备了很多东西,但是基本没问…整个过程体验非常好,不会让你尴尬的,面试官都大赞!给大家分享面筋,希望对还没面试的小伙伴提供参考,不过目前进了池子,得等很久才能出结果,许愿offe原创 2022-06-27 21:05:42 · 21570 阅读 · 1 评论 -
Parcelable与Serializable
优点:缺点:google官方也是很贴心呀,直接把怎么用放在源码的注释里了优点:缺点:Serializable 是一个空接口,用来标识当前类可以被 ObjectOutputStream 序列化,以及被ObjectInputStream反序列化总结:Java应用程序中有Serializable来实现序列化操作Android中有Parcelable来实现序列化操作 在Android中除了对数据持久化的时候需要使用到Serializable来实现序列化操作,其他的时候我们仍然需要使用Parcelab....原创 2022-06-12 16:45:40 · 28781 阅读 · 2 评论 -
SQLite数据存储
SQLite是一种转为嵌入式设备设计的轻型数据库,只有五种数据类型:在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的 0 和 1 代替true和false,而DATE类型则可以用特定格式的TEXT,REAL和INTEGER的值来代替显示,为了能更方便的操作DATE类型,SQLite提供了一组函数在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增,删,改,查工作,其主要方法如下:beginTran原创 2022-07-04 18:53:52 · 26832 阅读 · 1 评论 -
Java面试
Java实现一个线程的方法第一种实现线程类Thread,第二种实现Runnable接口,这两种都是重写我们的 run()方法,第三种实现Callable接口,需要实现我们的 call()方法Java I/O流分为几种按功能来分的话 input(输入流)和output(输出流)按类型来分的话 字节流和字符流,字节流以8位字节为单位来进行输入输出数据的,字符流以16位字节为单位去输入输出我们的数据HashMap和HashTable有什么区别在存储方面上,HashMap运行时以Key和Value的键值对形式进行原创 2022-06-30 14:19:25 · 24498 阅读 · 1 评论 -
华为实习面试(一)
这是来自一位学长的 一面(技术面试)4.28上午9:30,全程大概50min这位学长的一面是一位非常nice的小姐姐,学长前面稍稍有些紧张,后面这位小姐姐很好的缓解了气氛,后面反问环节聊了很多内容,面试完成后过了5min就来短信说通过了面试题的解答如下:JDK:java语言编写的程序所需的开发工具包,JDK包含了JRE,同时还javac、监控工具jconsole、分析工具jvisualvm等是Java开发工具包,提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)原创 2022-06-27 20:49:07 · 20902 阅读 · 1 评论 -
数据库的事务管理及特征
可能很多小伙伴都会好奇事务管理是什么?上篇讲了数据库的三大范式可以先了解一下事务是由N步数据库操作序列组成的逻辑执行单元,组成这组操作的各个单元要么全部成功,要么全部失败。即一组sql语句中哪怕有一条失败也会失败举个例子:转账操作,一个账户减少钱,一个账户增加钱默认情况下,MySQL的事务是自动提交的,也就是执行了增删改查操作之后,数据直接持久化到磁盘上,不能撤销但是如果改为手动事务之后,更新过的数据,在没有使用commit提交时,可以通过rollback进行撤回start transaction / be原创 2022-06-18 18:55:26 · 33095 阅读 · 1 评论 -
线程死锁是什么
线程死锁:两个或两个以上的线程在执行过程中同时被阻塞,它们中的某个或者全部都在等待某个资源被释放,由于线程被无限期的阻塞,系统处于死锁状态或系统产生了死锁,这些永远在互相等待的线程被称为线程死锁 如上图所示,线程A持有资源2,线程B持有资源1,它们都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态 如果想要了解什么是线程阻塞的朋友,可以看我之前发的一篇线程的阻塞线程死锁示例代码如下:线程 A 通过 synchronized (resource1) 获得 resource1 的监视器锁,然后通原创 2022-06-14 10:29:26 · 40234 阅读 · 1 评论 -
Java线程锁(一)
在Linux系统下,启动一个新的进程必须要给它分配独立的地址空间,建立众多的数据表来维护它的代码段,堆栈段和数据段,这是一种昂贵的多任务工作方式。而在进程中同时运行多个线程,多个线程彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于一个进程所花费的空间,而且线程之间彼此切换所需要的时间远远小于进程之间切换所需要的时间多线程并发面临的挑战:由于多个线程是共同占用所属进程的资源和地址空间的,如果多个线程要同时访问某个资源怎么办?其实在Java并发编程中,经常遇到多个线程访问同一个 共享原创 2022-06-13 22:26:16 · 29823 阅读 · 2 评论 -
线程池的使用
Java语言虽然内置了多线程支持,启动一个新线程非常方便,但是,创建线程需要操作系统资源(线程资源,栈空间等),频繁创建和销毁大量线程需要消耗大量时间如果复用一组线程,流程图如下:把很多的小任务让一组线程来执行,而不是每个小任务对应一个新线程这种能接收大量小任务并进行分发处理的就是线程池假设没有线程池引发的后果:线程池的主要思想:总结:线程池内部维护了若干个线程,没有任务的时候,这些线程都处于等待状态如果有新任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,新任务要么放入队列等待,要么增加一个新线程原创 2022-06-13 19:08:53 · 38575 阅读 · 1 评论 -
线程的阻塞
相信像我一样的初学者遇到线程阻塞时会感到无助,那我就把自己对于线程阻塞的理解记录下来吧!线程阻塞时的特点:该线程放弃CPU的使用权,暂停运行,只有当阻塞的原因消除后才回到就绪状态进行运行被其他的线程中断,该线程也会推出阻塞状态,同时抛出InterruptedException的异常一般线程中的阻塞:线程执行了 Thread.sleep (int n) 方法,该线程放弃CPU的使用,沉睡 n 毫秒,然后恢复运行线程执行了一段同步代码,由于无法获得相关的同步锁,只能进入阻塞状态,等获取了同步锁,才能恢复运行线程原创 2022-06-13 16:04:09 · 44973 阅读 · 1 评论 -
线程的状态及阻塞
之前提到了线程和进程,那就提一下线程的状态吧!线程状态通常分为五种:注意:阻塞被消除后回到就绪状态,不是运行状态温馨提示:大家可以通过getState()来获取线程当前的状态:NEW 、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED想要了解更多的线程知识,可以看看我写的上一篇线程与进程.........原创 2022-06-13 14:04:07 · 47801 阅读 · 1 评论 -
进程与线程之间的关系(一)
突然想聊一下自己对进程和线程的初步理解进程:进程是操作系统分配资源的基本单位进程 就是操作系统 为应用程序的执行 分配的资源进程就是一个容器,操作系统通过运行进程容器中的线程,来完成应用程序进程中的各项功能举个例子:比如桌面图标双击后,这个应用程序就开始运行了注意:一个进程的创建需要消耗计算机的资源,销毁意味着释放资源当很多个进程同时执行时,计算机资源消耗大,执行效率低线程:线程是操作系统执行和调度的最小单位线程依赖于进程而存在,即线程和进程是依赖关系每个进程都至少有一个线程,这个线程就是主线程举个例子:听原创 2022-06-13 11:32:59 · 46939 阅读 · 2 评论 -
什么是序列化
问题来了,什么是序列化呢?相信很多人都不太清楚,那我就把我的理解分享给大家序列化的目的?简而言之,就是对象不好操作,我们就把它转成流。反序列化,就是将这个流程颠倒过来,将流转成对象。详解如下:......原创 2022-06-12 15:41:29 · 33491 阅读 · 0 评论