![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA笔记
Elay老师
正在路上的程序猿
展开
-
JAVA中String, StringBuffer, StringBuilder的使用方法和区别
String, StringBuffer, StringBuilder简介及区别String:字符串常量StringBuffer:字符串变量(线程安全)StringBuilder:字符串变量(非线程安全)通过上述的描述想必大家已经对这三个对象有了一定了解。String:String类型的字符串是不可以发生改变的对象。如果对String类型的字符串进行更改的话,会生成一个新的对象,这个字...原创 2019-06-12 22:55:39 · 258 阅读 · 0 评论 -
Java多线程学习三
线程安全1.同步代码块线程安全:《Java 并发实践》多个线程,访问一个类的对象,如果不考虑这些线程在运行环境下的调度和交替执行,并且不需要额外同步和调用方法,也不需要额外的代码块的协调,那么这个类仍是正确的。那么这个类就是线程安全的类。实例:public class SafeThread{ public static void main(String[] args) { new S...原创 2019-07-31 23:24:28 · 136 阅读 · 0 评论 -
Java多线程学习二
线程的生命周期当线程被创建并且启动后,它经历了五种状态,新建,就绪,运行,阻塞,死亡,当线程在运行的时候不能一直占有CPU的执行权,CPU会在每个线程之间进行调度,线程也会多次进行阻塞和运行状态的切换。1.当线程对象被创建出来就进入到了新建状态,和其他的Java对象一样,仅仅是由Java虚拟机为其分配内存。2.调用start方法后,线程进入到就绪状态,其实内部还是依赖jvm的调度,当jvm执...原创 2019-07-30 22:36:22 · 133 阅读 · 0 评论 -
Java多线程学习(一)
线程概述:Java提供了非常优秀的多线程的支持,程序可以通过非常简单的方式启动多线程,多线程包括创建,启动线程,控制线程,以及多线程的同步(多线程安全)。线程和进程的区别:几乎所有的操作系统都支持进程的概念,所有运行的任务通常对应一个进程,当程序进入到内存中,即变成一个进程。进程是处于运行中的程序,并具有一定的独立性。进程是包含线程的,也就是说一个进程可以包含多个线程。进程具有如下的特性:...原创 2019-07-30 08:50:30 · 122 阅读 · 0 评论 -
斐波那契数列的递归和迭代实现
递归和迭代的区别递归:递归就是在函数里面调用自身。递归主要可以分为两个过程:递推和回归。所谓递推就是把复杂的问题求解推到比原来问题简单的一些问题的求解。回归就是当获得最简单的问题后,逐步返回,依次得到复杂问题的解。迭代:迭代就是利用变量的原值推算出变量的一个新值。斐波那契数列的递归和迭代实现递归实现:public class Solution { public int Fibon...原创 2019-06-30 18:31:11 · 778 阅读 · 0 评论 -
原码,反码,补码详解及如何计算二进制数中1的数量
原码、反码、补码的定义我们都知道计算机无法直接识别十进制数,所以我们要先把十进制数转换成二进制数存在内存中才能进行相应的计算。而原码,反码,补码就是计算机储存一个具体数字的编码方式。原码:原码就是符号位加上真值的绝对值,即第一位是符号位,其余位表示值。反码:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。补码:正数的补码是它本身,负数的补码是在其原码的基础上,...原创 2019-07-02 21:02:10 · 1417 阅读 · 0 评论 -
非递减排序及旋转数组实例
四种序列的简单区别递增排列:1,2,3,4,5递减排列 :5,4,3,2,1非递减排列 :1,2,3,3,4,5非递增排列:6,5,5,4,4,3,2,1实例把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出...原创 2019-06-17 01:51:40 · 1291 阅读 · 0 评论 -
队列和栈的简介及其应用实例
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构java中stack的使用方法,堆栈是一种"后进先出"(LIFO)的数据结构,只能在一端进行插入(称为"压栈")或删除(称为"出栈")数据的操作....原创 2019-06-16 19:20:36 · 3531 阅读 · 0 评论 -
Java中二维数组array.length和array[i].length的区别及实例
Java中二维数组array.length和array[i].length的区别及实例这两个length其实很容易区分。array.length代表的是二维数组行的长度,也可以看成每个二维数组中所包含的数组的数量。array[i].length代表的是对应行的长度。实例分析在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...原创 2019-06-11 01:20:41 · 7986 阅读 · 0 评论 -
JAVA二叉树前序,中序,后序遍历及使用递归还原二叉树
二叉树的前序,中序,后序遍历规则Tree Traversals:前序遍历(preorder):根节点–>左子树–>右子树中序遍历(inorder):左子树–>根节点–>右子树后续遍历(postorder):左子树–>右子树–>根节点Tips:这里我把对应的英文写出来,大家可以在命名变量的时候使用现在我们举一个实例供大家理解:前序遍历:a–>...原创 2019-06-15 23:29:28 · 1217 阅读 · 2 评论 -
关于Java链表的从尾到头的输出实例
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。这是之前我在某网上看到一道题目,在看各路大神解析时,看到一位大佬给出递归神级使用,心生澎湃跟各位分享一下。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {...转载 2019-06-13 00:46:13 · 266 阅读 · 0 评论 -
Java多线程学习四
Wait和Notifywait:让线程进入等待状态。notify: 唤醒线程,使线程不在处于等待状态。当线程A运行的过程中遇到不满足的条件需要等待,等待线程B去更改系统的状态,当线程B改变了系统的状态,再次唤醒线程A,线程A查看是否满足条件,如果满足条件则继续执行,如果不满足条件则进入等待状态。面试题:wait和sleep有什么区别?1.sleep必须指定时间,wait可以指定也可以不指...原创 2019-08-01 22:37:29 · 185 阅读 · 0 评论