随笔分类 -  JAVA

摘要:链表相交 题目地址:https://leetcode-cn.com/problems/intersection-of-two-linked-lists-lcci/ 题目的意思就是两个单链表,判断是否是相交链表,是的话,返回相交节点 当我看见这个题目的时候,第一想法就是暴力解决,用双层循环解决这个问题 阅读全文
posted @ 2020-08-18 11:20 林就远 阅读(551) 评论(0) 推荐(0)
摘要:环路检测 题目地址:https://leetcode-cn.com/problems/linked-list-cycle-lcci/ 题解解释的很棒,用数学思维推倒,然后就可以很简单的编写代码了。 第一个想出这种解法的人是个鬼才。 这里自己总结一下: 先引用一张图片 pic-159766232996 阅读全文
posted @ 2020-08-17 19:06 林就远 阅读(444) 评论(0) 推荐(0)
摘要:lambada表达式对集合的过滤和相互转换 引言: 假设一个场景: 对一个student的list集合进行操作,我要找出年龄大于20的student,重新组成一个student集合。 没有学习lambada表达式的第一想法肯定是通过for循环,再将符合条件的依次加入新的student集合中。思路很简 阅读全文
posted @ 2020-08-14 18:13 林就远 阅读(1292) 评论(0) 推荐(0)
摘要:lambda表达式对集合的遍历 引言: 从去年年末就一直想好好看一下lambda表达式,可是一直没有静下心来看。 这次项目里用的对集合操作几乎都是通过lambda表达式方式的。没办法,就只好去学习了。 正文: 通过普通的for循环来对集合的遍历是我之前一直在做的事,简单,易理解。 但是lambda表 阅读全文
posted @ 2020-08-14 18:12 林就远 阅读(3034) 评论(0) 推荐(0)
摘要:思考 Session依赖于Cookie吗? 上篇笔记《初始Session》中,有讲到Session记录客户端状态的方法步骤,是通过一个名为JSESSIONID的Cookie,然后找到这个客户端相对应的具体的Session。 这是不是就是说,Session依赖于Cookie呢?如果客户端禁止了Cook 阅读全文
posted @ 2020-05-28 15:43 林就远 阅读(1716) 评论(0) 推荐(0)
摘要:题外话 本来这篇笔记不应该放在这个笔记本组(浏览器)里的,因为Session是服务端的东西,可是Cookie和Session它们俩是密切相关的。提起Cookie那么Session必提,提起Session,Cookie必提。所以为了方便就全部放在这个名为浏览器的笔记本组里了。 和Cookie一样,之前 阅读全文
posted @ 2020-05-28 15:39 林就远 阅读(295) 评论(0) 推荐(0)
摘要:题外话 之前一直以为cookie很神秘,了解的程度也是刚刚入门级别,甚至是说堪堪入门而已,这次为什么写这篇笔记,这得幸于公司项目,在看了登录部分代码之后。所以想趁此机会好好系统性的了解一下cookie,下面是我对于cookie的理解和描述,以及使用方式,最后讲解Cookie类中的方法使用。 1、对c 阅读全文
posted @ 2020-05-28 15:35 林就远 阅读(233) 评论(0) 推荐(0)
摘要:1:线程和进程 线程是进程处理的最小单元。进程是线程的集合,一个进程至少包含一个线程。 并发和并行是两个概念,并行是指同一个时刻,多条指令在多个处理器同时执行。而并发是多条指令在同一个处理器快速的轮换执行。 归纳起来来说,操作系统可以同时执行多个任务,这里的每个任务就是一个进程。一个进程可以同时执行 阅读全文
posted @ 2020-05-28 15:25 林就远 阅读(161) 评论(0) 推荐(0)
摘要:1:继承Thread类创建线程类 步骤: (1)线程类继承Thread类,并对Thread类中的run()方法进行重写 (2)创建线程类对象。 (3)调用线程对象的start()方法来启动该线程。 注意:run()方法是线程执行体,但并不是所有线程的执行体都是run()方法。主线程的线程执行体就是m 阅读全文
posted @ 2020-05-28 15:21 林就远 阅读(830) 评论(0) 推荐(0)
摘要:线程的生命周期中有5个状态:创建、就绪、运行、阻塞、死亡。其中从就绪到运行,这两个状态的切换存在不确定因素,需要等待cpu的调度,获取cpu的时间片。 1:新建和就绪状态 当程序使用new关键字创建了一个线程之后,该程序处于创建状态。 当线程调用start()方法之后,该线程处于就绪状态。 注意:启 阅读全文
posted @ 2020-05-28 15:14 林就远 阅读(513) 评论(0) 推荐(0)
摘要:1:线程为什么要同步? 在多线程的情况下,容易造成数据的安全问题。比如取钱操作,涉及到金钱方面的,强烈建议使用线程同步。 线程同步主要有两种方式,一种是synchronized(同步监视器),一个是lock锁。 synchronized synchronized关键字的同步方式: (1)同步代码块( 阅读全文
posted @ 2020-05-28 15:11 林就远 阅读(167) 评论(0) 推荐(0)
摘要:1:传统的线程通信 传统的线程通信是借助wait()、notify()、notifyAll()三个方法的。这三个方法是Object的,并不是Thread方法的。需要注意的是:这三个方法必须由同步监视器对象来调用,这可以分为以下两种情况: (1)对于使用synchronized的同步方法,默认的隐式同 阅读全文
posted @ 2020-05-28 14:52 林就远 阅读(173) 评论(0) 推荐(0)
摘要:1:join线程 线程插队: 控制台输出: 可以看到thread线程在调用了join方法之后,开始进行了“插队”操作,主线程mian要等待thread线程执行完之后再执行。 join()方法有如下三种重载方式(会抛出InterruptedException异常): (1)join():等待被join 阅读全文
posted @ 2020-05-28 14:46 林就远 阅读(231) 评论(0) 推荐(0)
摘要:每次学习线程都是浅尝辄止的状态,这次下定决心是非学到60%入门不可,记录下:2019/11/27 正文: 线程的5个状态: 创建、就绪、运行、阻塞、死亡 线程状态图: 和线程有关的两个方法:start() 和run() start()方法是让线程到可运行状态。run()方法的主体就是线程要执行的方法 阅读全文
posted @ 2020-05-28 14:33 林就远 阅读(150) 评论(0) 推荐(0)
摘要:线程优先级,这是在我学习线程的时候有点疑惑的地方,今天记录一下。 先上代码: 执行结果(注意,每次执行的结果几乎都会与上次不一样): 恩?这就很意外了呀?为啥?我明明设置了thread3线程优先级最高呀,为啥是第二个执行的,而thread1的优先级却只有1而是最高执行的? 原来在线程中有一个很重要的 阅读全文
posted @ 2020-05-28 14:31 林就远 阅读(246) 评论(0) 推荐(0)
摘要:线程的创建方式: 1:通过继承Thread类来创建线程。 2:通过实现Runnable接口来创建线程。 然后在Main方法里分别创建通过继承Thread类和实现Runnable接口的线程,如下图: 我们可以看见:通过继承Thread类的创建线程是直接new 一个对象的。而通过实现接口的是new 一个 阅读全文
posted @ 2020-05-28 14:25 林就远 阅读(161) 评论(0) 推荐(0)
摘要:1:继承Thread类的创建线程 (1)实例变量 运行结果: 从上图可以看出,A线程和B线程各执行5次,得出:由继承Thread类创建的线程,实例变量并不共享。 (2)类变量(静态变量) 运行结果: 从上图可以看出,A和B总共执行了5次,得出:由继承Thread类创建的线程,类变量共享。 2:实现R 阅读全文
posted @ 2020-05-28 14:20 林就远 阅读(399) 评论(0) 推荐(0)
摘要:(本文中的全部观点,仅代表个人观点) 主线程、用户线程、守护线程的区分: 主线程:一个进程只有一个主线程(Main),其他都是子线程。(重点:个人认为主线程也是用户线程!!!) 用户线程:非守护线程(这个解释有点......废话) 守护线程:与系统,程序共存亡的线程就是守护线程。最常见的就是GC垃圾 阅读全文
posted @ 2020-05-26 10:01 林就远 阅读(235) 评论(0) 推荐(0)
摘要:1:notify() 作用:唤醒一个在对象上等待的线程,使其从wait()方法返回,而返回的前提是该线程获取到了对象的锁。 2:notifyAll() 作用:唤醒所有等待在该对象上的线程。 3:wait() 作用:调用该方法的线程进入WAITING状态,只有等待另外线程的通知或被中断才会返回,需要注 阅读全文
posted @ 2020-05-26 10:00 林就远 阅读(362) 评论(0) 推荐(0)
摘要:线程中的重要概念: 并发:单个cpu通过cpu调度算法来回切换不同的任务,让用户看上去这些任务是同时执行的,其实是有先后顺序的,这是逻辑上的同时。“假并发” 并行:多个cpu或物理主机处理多个任务,这是物理上的同时。也是真正的“并发” 一图读懂并发并行: 线程安全:由于java的多线程是一种并发编程 阅读全文
posted @ 2020-05-26 09:59 林就远 阅读(175) 评论(0) 推荐(0)