JAVA
林林同學
要得到你想要的某样东西,最好的办法是让你自己配得上它。
展开
-
Java 链表知识总结
链表的增加、删除、删除重复数据、找出链表中倒数第K个元素、链表的反转、从头到尾输出单链表、找到链表的中间节点、检测链表是否有环、找到链表的如口、求环的长度。在不知道头节点的情况下删除指定节点,判断两个链表是否相交,找到相交的第一个节点。public class MyLinkedList { Node head = null; /** * 向链表中插入数据 ...原创 2018-07-14 11:37:01 · 906 阅读 · 0 评论 -
java复习之接口类和抽象类
抽象类:不完全的类,用abstract 关键字创建,用extends 继承。是用来创建继承层级子类的模板,不能被创建对象。 接口:抽象方法的集合,用interface关键字创建,用implement继承。(接口中也能定义成员变量,必须为public static final,一般不再接口中创建成员变量)。如果一个类继承了某个接口,那么它就继承了该接口的抽象方法。接口只是一种形式,自身不能做任何事...原创 2018-05-24 22:03:48 · 196 阅读 · 0 评论 -
剑指offer 最小的K个数
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.ArrayList;import java.util.Collections;public class Solution { public ArrayList<Integer> GetLeastNum...原创 2018-05-08 17:44:11 · 174 阅读 · 0 评论 -
剑指offer之数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;i...原创 2018-05-08 17:42:42 · 149 阅读 · 0 评论 -
剑指offer 数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数。import java.util.HashMap;public class Solution { public int GetNumberOfK(int [] array , int k) { HashMap<Integer, Integer> hashMap = new HashMap<>(...原创 2018-05-08 17:40:11 · 188 阅读 · 0 评论 -
剑指offer之数组中只出现一次的数字
题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。/num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果import java.util.HashMap;public class Solution { public void FindNumsAppearOnce(int [] ...原创 2018-05-08 17:38:59 · 126 阅读 · 0 评论 -
剑指offer之 第一个只出现一次的字符
题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Set;public class Solution { public int FirstNotRep...原创 2018-05-08 17:38:07 · 354 阅读 · 0 评论 -
剑指offer 字符流中第一个不重复的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 方法一import java.util.HashMap;public class FirstNo...原创 2018-05-08 17:37:12 · 307 阅读 · 0 评论 -
JDBC: Statement、PreparedStatement和CallableStatement
JDBC:Statement(接口) | PreparedStatement(接口) | CallableStatement(接口) 以上三者为继承关系 Statement 接口提供了执行语句和获取结果的基本方法; PreparedStatement 接口添加了处理 IN 参数的方法; CallableStatement 接口添加了处理 OUT 参数的方法。...原创 2018-04-27 10:34:57 · 338 阅读 · 0 评论 -
leetcode学习之剑指offer复习: 二叉树
二叉树的最小深度: Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.import java.util.LinkedList...原创 2018-05-09 14:54:15 · 194 阅读 · 0 评论 -
Java之树的遍历(非递归)
package niuke;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;class TreeNode { int val = 0; TreeNode left = nu...原创 2018-04-20 09:37:56 · 2669 阅读 · 0 评论 -
Java复习之static关键字
static:表示静态的意思,可用于修饰成员变量和成员方法,被静态修饰的成员方法只能访问静态成员,不可以访问非静态成员。静态是随着类的加载而加载的,因此可以直接使用类进行访问。static可以修饰内部类,但是不能修饰普通类,静态内部类的话可以直接调用静态构造器。static修饰方法,static方法就是没有this的方法。在static内部不能调用非静态方法。这实际上是static方法的主...原创 2018-05-24 22:05:04 · 270 阅读 · 0 评论 -
Java复习之重载和重写
重写(override):是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和参数都不变。即外壳不变,核心重写。 重写的好处在于子类可以根据需要定义特定于自己的行为,也就是说子类能根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申明更加广泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception...原创 2018-05-24 22:07:21 · 175 阅读 · 0 评论 -
java中Scanner类nextLine和next的区别和使用方法
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。ne...原创 2018-07-23 12:06:27 · 560 阅读 · 0 评论 -
Java内存区域与自动溢出异常
Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。因此,在Java中我们常常说到的内...原创 2018-06-01 18:01:47 · 380 阅读 · 0 评论 -
java 初始化顺序
基本顺序: (静态变量、静态初始化块)>(变量、初始化块)>构造器。 测试代码:public class TestInitOrder { public static void main(String[] args) { System.out.println("测试一般类的初始化顺序:"); new General(); ...原创 2018-06-01 17:55:23 · 220 阅读 · 0 评论 -
JDBC连接数据库
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 ...原创 2018-06-01 17:48:09 · 169 阅读 · 0 评论 -
HashMap和HashTable的区别
HashMap和HashTable的区别 HashTable的key和value都不允许为null值,而HashMap的key和value则都是允许null值的。这个其实没有好坏之分,只是Sun为了统一Collection的操作特性而改进的。HashTable有一个contains(Object value)方法,功能上与containsValue(Object value)一样,但是在实现...原创 2018-06-01 17:44:27 · 418 阅读 · 0 评论 -
JAVA深复制(深克隆)与浅复制(浅克隆)
JAVA深复制(深克隆)与浅复制(浅克隆) 1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再...原创 2018-06-01 17:42:49 · 292 阅读 · 0 评论 -
Java复习之内部类
内部类是指一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。 内部类可以是静态,可用protected和private修饰。而外部类只能是使用public和缺省的包访问权限。 内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类。 为什么需要内部类? 典型的情况是、内部类继承某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。所以内...原创 2018-05-24 22:09:21 · 182 阅读 · 0 评论 -
剑指offer之 链表中倒数第k个节点
题目: 输入一个链表,输出该链表中倒数第k个结点。public class FindKthToTail {//方法一// public ListNode findKthToTail(ListNode head,int k) {// if (head ==null||k==0)// return null;// ListNode p = h...原创 2018-04-13 22:11:58 · 120 阅读 · 0 评论 -
剑指offer之 二叉树中和为某一值的路径
题目:输入一棵二叉树和一个整数, 打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。import java.util.ArrayList;public class FindPath { ArrayList<Integer> path = new ArrayList<>(); ArrayList...原创 2018-04-23 16:09:53 · 158 阅读 · 0 评论 -
Java之多线程学习
进程与线程 进程:执行中的程序,一个进程至少包括一个线程 线程:进程负责程序执行的执行单元,线程本身靠程序进行运行,线程时程序中的顺序控制流,只能使用分配给程序的资源和环境 线程与进程一样分为五个阶段:创建:新创建了一个线程对象就绪:线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权运行:就绪状态的线程获取了...原创 2018-04-01 22:21:31 · 156 阅读 · 0 评论 -
剑指offer之旋转数组的最小数字
题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。import java.util.ArrayList;public class Solution {...原创 2018-04-08 22:43:46 · 101 阅读 · 0 评论 -
剑指offer之矩形覆盖
题目: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution { public int RectCover(int target) { if(target<=0) return 0; else if(tar...原创 2018-04-08 22:42:31 · 103 阅读 · 0 评论 -
剑指offer之二进制中1的个数
题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。public class NumberOf1 { public int numberOf1(int n) { int count =0; if (n<0) { count = 32; while(n!=-1)...原创 2018-04-08 22:41:20 · 97 阅读 · 0 评论 -
剑指offer 之两个栈来实现一个队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 把数据push到A栈中,然后pop到B栈中,这时B栈中的数据和之前A栈中的数据时相反的,这是pop的数据就实现了先进先出,然后再把B栈中的数据pop出来存入A栈中,这时A中的数据仍是pop最先存入的数据后其他的存储数据。import java.util.Stack;public ...原创 2018-04-08 21:42:19 · 105 阅读 · 0 评论 -
Java 之反射机制
在Java中,不同的class分别由不同的ClassLoader负责加载,一个JVM默认的ClassLoader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader。Bootstrap ClassLoader:负责加载java基础类,主要是 %JRE_HOME/lib/ 目录下的rt.jar、resources.jar、ch...原创 2018-03-30 21:15:50 · 105 阅读 · 0 评论 -
Java 剑指offer之二叉树的重建
import java.util.*;public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) { if(pre.length == 0||in.length == 0){ return null; } Tr...原创 2018-03-22 22:03:29 · 145 阅读 · 0 评论 -
java 之树的遍历
package niuke;import java.util.ArrayList;import java.util.List;public class Tree { private Node root; private List<Node> list = new ArrayList<>(); // public Tree(Node roo...原创 2018-03-22 21:58:49 · 646 阅读 · 0 评论 -
Java 2017腾讯校招真题之素数对
素数对 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。 如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))import java.util.Scanner;public class PrimeDouble { public boolean isPrime(int n) { ...原创 2018-03-22 21:55:37 · 212 阅读 · 0 评论 -
Java 剑指offer之 递归青蛙跳、变态青蛙跳
青蛙跳 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。import java.util.Scanner;public class QingWaTiao { public int jumpFloor(int target){ int count =0; if(target <=0) ...原创 2018-03-22 21:52:59 · 484 阅读 · 1 评论 -
剑指offer之反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。package niuke;import java.util.Stack;public class ReverseList {//方法一:指针的移动// public ListNode reverseList(ListNode head) {// if (head ==null)// ...原创 2018-04-14 11:26:53 · 132 阅读 · 0 评论 -
剑指offer之合并两个排序的链表
题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:归并排序的思想public class ListNodeMerge { public ListNode merge(ListNode list1,ListNode list2){ if(list1==null && list2!=null...原创 2018-04-14 14:40:17 · 100 阅读 · 0 评论 -
剑指offer之构建乘积数组
题目: 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。import java.util.ArrayList;public class Solution { public int[] multiply(int[] A) { int[]...原创 2018-04-12 22:09:23 · 121 阅读 · 0 评论 -
Java之深复制浅复制
JAVA深复制(深克隆)与浅复制(浅克隆) 1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再...原创 2018-04-18 17:25:01 · 201 阅读 · 0 评论 -
剑指offer 数组中重复的数字
题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。/* * 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的, * 但不知道有几个...原创 2018-04-12 21:40:28 · 137 阅读 · 0 评论 -
学习笔记:Java之集合框架
Java集合框架 - Collection: - List:允许重复的有序集合,能精确控制每个元素的插入位置,可使用索引来访问List中的元素,ArrayList主要是用数组来存储元素,LinkedList主要是用链表来存储元素,当随机访问元素操作多的时候,优先使用ArrayList,当增加与删除操作多的时候,优先使用LinkedList(List允许加入null值) ...原创 2018-04-04 11:52:52 · 141 阅读 · 0 评论 -
学习笔记:java 之网络编程
TCP 以下代码创建了两个线程,实现服务端和客户端的互相通信。 服务端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import ja...原创 2018-04-03 21:51:58 · 105 阅读 · 0 评论 -
剑指offer之数值的整数次方
题目: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方public class Power { public double power(double base, int exponent) { if(exponent>=0){ if(exponent==0) ...原创 2018-04-09 22:08:46 · 101 阅读 · 0 评论