Java基础
巩固Java基础
Logicr
记性差,记录下,查阅方便些,水平有限,若参阅请自行斟酌。
展开
-
HashMap的tableSizeFor方法中n |= n >>> 1
在HashMap的tableSizeFor方法中这段代码很有意思,乍一看有点懵。 /** * Returns a power of two size for the given target capacity. */ static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2;原创 2020-09-07 20:08:39 · 2590 阅读 · 0 评论 -
函数式接口
函数式接口,例如:Predicate——接收T对象并返回booleanConsumer——接收T对象,不返回值Function<T, R>——接收T对象,返回R对象Supplier——提供T对象(例如工厂),不接收值UnaryOperator——接收T对象,返回T对象BinaryOperator——接收两个T对象,返回T对象...原创 2020-05-25 19:39:29 · 241 阅读 · 0 评论 -
NoSuchColumnFamilyException 解决方案
线上新增Hbase集群,但是日志偶发性报NoSuchColumnFamilyException起初以为是Hbase不稳定导致,在代码中加入重试之后,对于NoSuchColumnFamilyException偶发导致的读写异常得到缓解。org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family ta...原创 2020-01-02 15:22:13 · 6220 阅读 · 1 评论 -
在线编程中的单行多输入问题
今朝又急于今朝醉,明日愁来明日愁。——罗隐《自遣》例题:连续最大和。一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:...原创 2018-08-28 16:42:24 · 446 阅读 · 0 评论 -
JAVA实现双向链表
用java写链表简直爽歪歪 我中有你,你中有我package task4_14;interface Link {//接口,放各种链表操作的方法 void add (Object obj); boolean remove (int index); int indexOf(Object obj); boolean set(int index,Obje...原创 2018-04-16 21:09:47 · 208 阅读 · 0 评论 -
JAVA中数组那点事
在JAVA中,数组比起C中,要强大得多 1.不规则数组如:int [][] arr= new int[3][]; 即,在为多维数组分配内存时,只分配一维,其他维可以手动分配,这大大提高了数组的灵活性,在需要非常大而稀疏的数组时,不规则数组是个很好的选择package Test;public class Test { public static void m...原创 2018-04-21 00:22:45 · 159 阅读 · 0 评论 -
JAVA实现动态栈
在数据结构中,栈是一种极其实用的结构 所以,有必要将其掌握,栈的特点是“先入后出”,只能从一端进,一端出。 package stack;//包名interface Stack {//接口,一些可能会用的方法void stackPush(Object obj);//入栈void stackPop();//出栈int stackSize();//获取栈中元素数量Obje...原创 2018-04-22 15:39:59 · 896 阅读 · 0 评论 -
JAVA 应用栈对RPN逆波兰表达式求值
逆波兰表达式(后缀表达式)逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀表达式。这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子: 正常的表达式 逆波兰表达式a+b ---> a,b,+a+(b-c) ---> a,b,c,-,+a+(b-c)*d ---> a,b,c,-,d,*,+a+d*(...原创 2018-04-23 00:20:42 · 1008 阅读 · 0 评论 -
JAVA栈应用之括号匹配
JAVA栈应用之括号匹配 在数据处理中,常常要判断数据中的括号,应用栈来处理及其方便。 当用户输入一个字符串时,遇到左括号时,将其入栈,如’(’ ‘[”’{,而遇到右括号时,如’)”}”]’时,与栈顶的括号与当前匹配,如果匹配成功,则将栈中的括号出栈,表示当前括号成对。 如匹配失败,又分为两种情况,栈已经空和栈不空,若栈已空,则现在右括号比左括号多()},栈不空则很明显,当...原创 2018-04-26 23:10:18 · 2266 阅读 · 0 评论 -
JAVA泛型与栈应用
从JDK1.5以后引入了三大常用新特性:泛型(Genericity)、枚举(enum)、注解(Annotation)。其中在JDK1.5中泛型是一个非常重要的实现技术,它可以帮助我们解决程序的参数转换问题。泛型假设需要定义一个描述坐标的程序类Point,需要提供两个属性x、y。对于这两个属性的内容可能有如下选择: x = 10、y = 20 ; x = 10.1、y = 20...原创 2018-04-27 09:49:08 · 1831 阅读 · 0 评论 -
JAVA多线程
进程与线程Java的第一大特色:多线程的编程支持。 多进程与多线程区别:本质区别在于,每个进程拥有自己的一整套变量,而线程则共享数据。共享变量使得线程之间的通信比进程之间通信更有效、更方便。 JAVA多线程实现 继承Thread类实现多线程 Runnable()接口实现多线程 Callable实现多线程 继承Thread类实现多线程java.l...原创 2018-04-27 18:00:47 · 136 阅读 · 0 评论 -
JAVA泛型及栈应用之简单迷宫
JAVA泛型及栈应用之简单迷宫将泛型与栈结合结合之后,可以高效解决一些数据结构中的问题,其中,走迷宫便是我们最常遇到的一类。再此之前,需要对栈以及泛型有所了解:>JAVA泛型与栈应用< 这里,先以简单迷宫为例: 假设现在有一个6X6的矩形迷宫,1表示通路,其他表示无路。 如果以[5][2]为入口,那么,走出迷宫的路径应该为: 那该如何用代码来走呢? 思路...原创 2018-04-30 17:00:44 · 521 阅读 · 0 评论 -
Java集合类
Java类集的引出类集实际上就属于动态对象数组,在实际开发中,数组的使用频率并不高,因为其长度固定这一特点,也成为其缺陷。为了解决此问题,Java提供了动态对象数组实现框架–Java类集框架。Java集合框架实际上就是Java针对数据结构的一种实现,而在数据结构之中,最为基础的就是链表。 Collection 集合接口在Java的类集里(java.util)提供了两个最...原创 2018-05-20 15:57:46 · 230 阅读 · 0 评论 -
JavaSE高级开发之JavaIO
File文件操作类 在java.io包中,File类是唯一一个与文件本身操作(创建、删除、取得信息..)有关的程序类。 File类的基本使用 在windows下,路径记得加盘符如”C:”File(”pathname“)//构造createNewFile()//创建一个新文件exist是()//存在否delete()//删除mkdirs()//创建路径getPare...原创 2018-05-23 20:20:11 · 395 阅读 · 0 评论