- 博客(45)
- 资源 (2)
- 收藏
- 关注
原创 手写MyBatis,DLUT_DBUtil,一款类似于MyBatis的框架
代码已开源到githubhttps://github.com/EraHuang/DLUT_DBUtil-Like-MyBatis一款类似于mybatis的持久层框架,比mybatis使用起来更为简单名为DBUtil,实际上该框架只支持注解开发,并完全是直接替你封装好返回对象,一切为了降低使用门槛, DLUT为我的大学简称,我是大连理工大学大三的一名学生该框架与我的大学无关,但我的母校以及校友们对该源码以及其他文件有一切使用权利为什么不推荐DLUT_DBUtil呢,如果你是商业开发,我非常不赞同.
2020-07-10 22:13:34 474
翻译 Java线程状态
public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runnable * state is executing in the Java virtual machine but it may * .
2020-08-21 13:37:53 147
原创 HashMap中插入元素的底层逻辑
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; // 先将table赋值给了tab,这个判断条件主要用于判断table中的 // 元素是否为空或者table是否为null,如果为空,就让tab初始化 ...
2020-08-21 11:54:38 344
原创 找出给出的字符串S中最长的回文子串。假设S的最大长度为1000,并且只存在唯一解。
public class Solution { /** * * @param s string字符串 * @return string字符串 */ public String longestPalindrome (String s) { int sLength = s.length(); if(s == null || sLength == 0) return ""; if(s.
2020-07-23 23:30:15 230
原创 Spring源码阅读记录 annotateBeanDefinition维护的属性
scope = singletonabstract = falselazyInit = nullautowireMode = 0depencyCheck = 0autowireCandidate = trueprimary = falsefactoryBeanName = nullfactoryMethodName = nullinitMethodName = nulldestoryMethodName = null
2020-06-29 22:05:16 138
原创 从源码的角度理解ReentrantLock的实现
package java.util.concurrent.locks;import java.util.concurrent.TimeUnit;import java.util.Collection;/** 阅读本文前,最好先了解一下CAS和AQS,然后有疑问下方给我留言,大家一起学习* 不要随便Copy别人的博客,这个习惯不好* ReentrantLock中实现了两套锁机制* 一...
2020-04-14 12:30:23 317 1
原创 Synchronized和Atomic性能测试
**** 注意,该测试并不严谨,在赋值操作时测试代码中的方式不同,所以该测试作为定性分析测试结果为,Synchronized在800ms左右完成了10000次加法,AtomicInteger在700ms左右完成,略胜一筹import java.util.concurrent.atomic.AtomicInteger;public class Main { public stat...
2020-04-09 00:40:00 230
原创 java AtomicInteger类深入解析
先看继承关系java.lang.Number 这个抽象类中主要是一些数值转换的方法,比如将一个Number对象转化为int float double等,转换中可能会存在精度问题。Number类对于我们关注的AtomicInteger对象的主要功能没有太大关系,现在我们来着眼AtomicInteger类value 对应的值, 通过使用unsafe类中的方法来实现对va...
2020-04-09 00:14:23 316
原创 给定一个n*n的矩阵matrix,请把这个矩阵顺时针转动90度。
import java.util.Scanner;public class Main{ public static int[][] matrix; public static int n; public static void init() { Scanner scan = new Scanner(System.in); ...
2020-03-06 19:00:51 1437
原创 给定一个整型数组arr,请打印其中出现次数大于一半的数,如果没有这样的数,请输出-1
public class Main{ // 用map来存储各个数据出现的次数 public static Map<Integer, Integer> map; // 用number来存储数据的个数 public static int number; // 数据初始化 public static void ini...
2020-03-06 13:35:22 1471
原创 java测试,观察变量定义在循环内部的循环外部的效率区别(时间)
写代码的时候总是能碰到这样的结构for(.......){ int temp = ? int temp = ?; for( ...........){} ...
2020-03-06 13:17:45 501
原创 给定一个整型数组arr,再给定一个整数k,打印所有出现次数大于n/k的数,如果没有这样的数,请打印”-1“。
import java.util.Scanner;import java.util.TreeMap;import java.util.Iterator;import java.util.Map;public class Main{ // 用于存储n/k的值 public static int nlk; // 利用表存储数据 p...
2020-03-06 11:43:36 1042
原创 合并两个有序的单链表
给定两个升序的单链表的头节点head1和head2,请合并两个升序链表,合并后的链表依然升序,并返回合并后链表的头节点。import java.util.Scanner;public class Main{ // 把两个数据分别叫做left和right存在数组中 public static int [] left; publ...
2020-03-05 17:13:42 385
原创 按照左右半区的方式重新组合单链表
package com.era.Al;import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner s = new Scanner(System.in); int number = s.nextInt();...
2020-03-05 16:35:39 130
原创 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格
import java.util.Scanner;// 比较简单,不是我闲的慌,刷到这样的题了,写完了,不上传,感觉哪里不对劲public class Main{ public static String function() { Scanner scan = new Scanner(System.in); String[] array = ...
2020-03-03 17:08:36 1386
原创 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
import java.util.Scanner;// 思路为建立一个N*3的矩阵,第一列为左孩子,第二列为右孩子, 第三列为该节点的高度(局部高度)// 初始化矩阵的左孩子和右孩子都是NULL(-1),HEIGHT(高度)初始化为1// 然后从后往前计算,最终累计到根节点0上public class Main{ // 存储数结构的矩阵 public st...
2020-03-03 16:53:38 511
原创 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
import java.util.Arrays;import java.util.Scanner;// 主要还是依靠对自定类Number的排序// 取比较的两个数的最短长度为界,对两个数的每一位从左到右进行比较// 如果比较的过程中出现了有一位不相等的情况,则返回 N2-N1(逆序,得到由大到小的序列)// 如果前N位相等,则比较它们的长度,返回N2.length()-N1.lengt...
2020-03-03 15:29:18 1376 1
原创 给出一棵二叉树的先序和中序数组,通过这两个数组直接生成正确的后序数组。
import java.util.HashMap;import java.util.Map;import java.util.Scanner;// 思路,利用先序遍历和中序遍历将树构建出来,再用后续遍历遍历树,放在数组中,再输入结果// ps: 直接输出也可以,写注释的时候才想到可以直接输出// 先序遍历第一个一定是根节点// 中序遍历表示着遍历的顺序,将中序遍历的值作为Key,在数...
2020-03-02 15:15:24 1038
原创 统计和生成所有不同的二叉树
import java.util.Scanner;// OJ平台通过率低,小数据测试没有问题,如发现代码问题,欢迎下方留言// 大体思路为 n个节点,必然有一个为根节点,剩余n-1个要分配到左子树和有子树中// 从左子树为0个开始,一直到左右子树的个数相等,不用在增加左子树的节点,因为// 左右为对称结构,乘以二可以了// 输入8,结果为1430没有问题class Main{ ...
2020-03-02 13:46:04 243
原创 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
import java.util.Scanner;public class Main{ // 用于存储矩阵信息 public int [][] map; public int getShortRoute(int[][] map) { // 矩阵的高 in...
2020-03-02 09:57:19 7382
原创 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
给定一个n * m的矩阵a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。public class Finder{ public static int[][] route; public static int heigh; public static int with; ...
2020-03-01 23:33:28 4023
原创 派对的最大快乐值问题
import java.util.ArrayList;import java.util.Iterator;import java.util.List;// 我的思路是,从树的叶子开始计算// 到底是这个节点的开心值大,还是这个节点的子节点加起来开心值大// 如果是前者, 返回该节点的开心值,后者, 返回这个节点子节点的开心值public class Finder{ ...
2020-03-01 21:15:33 622
原创 二叉树节点间的最大距离问题
import java.util.Stack;// 我的思想路是,无论这个距离有多长,由于是二叉树,最大距离必产生在该树的某一个节点上// 对所有节点的左右子树计算后,相加再加一,找出最大值public class Finder{ public static Stack<Node> stack = new Stack<>(); ...
2020-03-01 20:32:20 209
原创 java notify 一个线程调用notify方法无法唤醒另一个线程的问题
类似一 一个读写锁的问题,代码如下,目的是先输出10次A, 再输出十次B,结果是有时候运行正常,大部分时候线程B无法被唤醒。public class Test { public static void main(String[] args) { Object lock = new Object(); new A(lock).start(); ...
2020-02-28 11:12:44 1184
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DFSck
DFSCheck 也是个命令行工具类,提供DFS卷的基本检查,以检查是否存在错误直接看代码吧public class DFSck extends ToolBase { private static final Log LOG = LogFactory.getLog(DFSck.class.getName()); DFSck() {} /** * Filesyste...
2020-02-25 11:47:12 179
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs Tool ToolBase FsShell
接下来会是几个类的学习首先是org.apache.hadoop.util.Tool接口ToolBase类实现了 Tool接口FsShell 继承了ToolBase类/*** A tool interface that support generic options handling** @author hairong**/// 一个支持通用选项...
2020-02-25 11:43:09 176
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DataStorage
class DataStoragepublic static final String STORAGE_INFO_FILE_NAME = "storage"; public static final Log LOG = LogFactory.getLog("org.apache.hadoop.dfs.DataStorage"); // persistent fields // 持...
2020-02-25 11:13:08 121
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DatanodeRegistration
class DatanodeRegistration extends DatanodeID implements Writable// 继承了DatanodeID(主要是主机名端口号和在集群中唯一的ID) 实现了Writable接口// 也是上来先在工厂里注册一下,以后通过工厂可以直接注册对象static { ...
2020-02-25 10:48:09 155
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DatanodeDescriptor
// 继承了DatanodeInfo类(包含datanode的基本信息和流操作)public class DatanodeDescriptor extends DatanodeInfo// 将存储的块对象放置在TreeSet中,查找时有较好的效率,同时线程安全,在之前的版本中不知道是否已经有了TreeMap类// 估计应该是存在的,我再去考证一下,所有有可能是因为线程安全问题使用...
2020-02-25 10:34:21 144
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DatanodeProtocol (接口)
interface DatanodeProtocol extends VersionedProtocol*********************************************************************** Protocol that a DFS datanode uses to communicate with the NameNode.* I...
2020-02-25 09:13:32 118
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DatanodeInfo
DatanodeInfo (Datanode节点信息)// DatanodeInfo 继承了DatanodeID(上一篇文章) 实现了org.apache.hadoop.net.Node接口// 该接口定义了getNetworkLocation()方法,用于不同机架不同数据中心的基础条件下,网络地址的获取public class DatanodeInfo extends Dat...
2020-02-25 09:03:59 244
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DatanodeID
* DatanodeID is composed of the data node* name (hostname:portNumber) and the data storage ID,* which it currently represents.(DataNodeId 由 主机名+端口号和数据存储ID来代表)// 实现了org.apache.hadoop.io.W...
2020-02-25 08:46:16 137
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs Block
今天来学习dfs包中的Block类* A Block is a Hadoop FS primitive, identified by a* long.class Block implements Writable, ComparableBlock类实现了Writable接口和Comparable接口static { ...
2020-02-25 08:34:09 124
原创 hadoop(0.1.1.2)源码学习-org.apache.hadoop.dfs DataNode
今天正式开始hadoop源码学习,此前chang'shi尝试过hadoop3源码阅读,无奈发展到3,源码已过于复杂,难以看懂,于是尝试haddop0.1.1.2源码学习,发现虽然时隔jiu'y久远,设计思想上还是一脉相承。今天来看DataNode类DataNode 类实现了 FSConstants(FS常数)和Runnable接口,FSConstants来自于同一包下。FSConstan...
2020-02-24 21:28:00 321
原创 java System Properties
/** * System properties. The following properties are guaranteed to be defined: * <dl> * <dt>java.version <dd>Java version number * <dt>java.vendor ...
2020-02-22 18:09:46 137
原创 java--Collection接口源码
接口Outline:接口源码:(不方便看的话,拷贝到IDE可能好一点)/** Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms*/...
2019-06-29 13:18:32 336
原创 每天一份java源码--第二天--String类(筛选出了常用函数的源码)
String类源码结构:源码部分:(不方便看的话,拷贝到IDE可能好一点)package java.lang;import java.io.ObjectStreamField;import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.util.Arr...
2019-06-29 11:17:31 218
原创 每天一份java源码--第一天--Boolean类
Boolean类源码结构:源码部分:(不方便看的话,拷贝到IDE可能好一点)/** Copyright (c) 1994, 2006, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*...
2019-06-28 17:05:02 177
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人