Java
文章平均质量分 62
Java
晓呆同学
Java软件工程师
展开
-
Java 中对象的内存布局
我们大都知道基本数据类型在内存中所占字节数,那普通对象在内存中占用字节数该怎么计算呢?原创 2021-03-21 22:45:59 · 328 阅读 · 4 评论 -
Java 中创建一个对象的 6 种方式
如题:Java 中创建一个对象的 6 种方式原创 2021-03-04 13:00:10 · 1137 阅读 · 10 评论 -
ThreadLocal 面试看这一篇就够了
一、什么是ThreadLocalThreadLocal 称为线程本地变量,当使用ThreadLocal维护变量时,每个线程Thread拥有一份自己的副本变量,多个线程互不干扰,从而实现线程间的数据隔离。ThreadLocal维护的变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。我们先来个简单的示例:...原创 2020-06-12 21:31:00 · 920 阅读 · 0 评论 -
为啥同一个类中普通方法调用Spring注解方法,注解会失效?看完你就明白,So easy!
为啥同一个类中普通方法调用Spring注解方法,注解会失效呢?真相,永远只有一个!原创 2020-05-11 22:00:52 · 1024 阅读 · 0 评论 -
Java版ISO8583报文组包/解包
文章目录一、8583协议简介二、位图规则三、8583格式报文参考四、组包/解包思路五、相关代码一、8583协议简介 8583协议是基于ISO8583报文国际标准的包格式的通讯协议,8583包最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583包前面一段为位图,它是组包解包确定字段域的关键索引。二、位图规则 位图是8583报文组包和解包的关键。我们将位图转换为二进...原创 2020-03-02 00:46:12 · 4935 阅读 · 6 评论 -
Spring @Async注解实现异步方法
一、使用方式二、自定义线程池三、自定义线程池的使用四、线程池execute(Runable)方法执行过程原创 2020-03-02 00:42:30 · 883 阅读 · 6 评论 -
算法题--两数相加 [LeetCode]
题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例: 输入:(2 -> 4 -> 3) + (5 -&原创 2019-01-31 20:44:00 · 467 阅读 · 0 评论 -
算法题--无重复字符的最长子串 [LeetCode]
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3: 输入: “pwwkew” 输出: 3 ...原创 2019-01-31 20:44:57 · 1274 阅读 · 0 评论 -
算法题--最长回文子串 [LeetCode]
题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。示例 2: 输入: “cbbd” 输出: “bb”题解方法一:中心扩展算法 中心扩展就是把给定的字符串的每一个字母或两个字母之间空隙当做中心,向两边扩展,这样来找 长度...原创 2019-01-31 20:45:46 · 5419 阅读 · 3 评论 -
算法题--盛最多水的容器 [LeetCode]
题目描述 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器...原创 2019-01-31 20:46:40 · 1490 阅读 · 0 评论 -
算法题--最长公共前缀 [LeetCode]
题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl”示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母 a-z 。题解方法一:横向扫...原创 2019-02-02 14:58:24 · 656 阅读 · 0 评论 -
算法题--删除链表的倒数第N个节点 [LeetCode]
题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。进阶: 你能尝试使用一趟扫描实现吗?题解方法一:两次扫描法 我们注意到这个问题可以容...原创 2019-02-03 11:11:42 · 1356 阅读 · 5 评论 -
算法题--有效的括号 [LeetCode]
题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1: 输入: “()” 输出: true示例 2: 输入: “()[]{}” 输出: true示例 3: 输入: “(]” 输出:...原创 2019-02-03 14:27:19 · 751 阅读 · 2 评论 -
Spring依赖注入实现简单工厂模式
背景 简单工厂模式定义起来比较容易,但是在Spring项目中,通过new创建出来的对象中,无法使用@Resource或@Autowired 注解实例化service层注入。 这个也比较容易理解,因为Spring的注入是在项目启动的时候执行的,所以后期new出来的实例对象中的注入注解就不会生效了。举个例子: 假设有一个订单支付功能,我们有两种支付方式,一种支付宝支付,一种微信支付。用户...原创 2019-03-18 14:46:55 · 4304 阅读 · 13 评论 -
算法题--寻找两个有序数组的中位数 [LeetCode]
题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0示例 2: nums1 = [1, 2] nums2 =...原创 2019-01-31 20:43:08 · 578 阅读 · 0 评论 -
算法题--两数之和 [LeetCode]
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0,...原创 2019-01-31 20:41:46 · 535 阅读 · 0 评论 -
Spring--quartz中的cronExpression表达式解释
一个cron表达式有6个或7个有空格分隔的时间元素。按顺序依次为:秒 分 小时 日期 月份 星期秒 分 小时 日期 月份 星期 年其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4) (/4表示每隔4小时),一个列表(1,3,5),通配符。由于“月份中的日期”和“星期中的日期”这两个元素互斥的,必须要对其中一个设置”?”。字段原创 2015-09-18 16:43:43 · 3594 阅读 · 0 评论 -
Java笔试题分类总结--位操作
位操作优点:在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。位操作基础:基本的位操作符有"与"、"或"、"异或"、"取反"、"左移"、"右移"这6种,它们的运算规则如下所示:位操作注意事项:1) 在这6种操作符中,只有"~取反"是单目操作符,其它5种都是双目操作符。2) 位操作只能用于整形数据,对float和double类型原创 2016-04-07 15:22:32 · 1806 阅读 · 0 评论 -
Java笔试题分类总结--基本数据类型
基本类型,或者叫做内置类型,是Java中不同于类的特殊类型。Java中定义了四类八种基本数据类型:布尔型: boolean字符型: char整数型: byte, short, int, long浮点数型: float, double下边介绍一些在笔试面试中,经常遇到的问题。1. short s1 = 1; s1 = s1 +原创 2016-04-07 19:20:13 · 19460 阅读 · 1 评论 -
Java笔试题分类总结--String
Java中字符串对象是一种特殊的对象。String类是一个不可变的(final)类,也就说,String对象一旦创建就不允许修改。String类有一个对应的常量池(String pool),每一个内容相同的字符串对象都对应于一个常量池里的对象.首先,让我们来看一下下边这两种定义String的区别。String str1 = "abc"; String str2 = new Stri原创 2016-04-12 10:11:51 · 1543 阅读 · 0 评论 -
Java break跳出多层循环
编程中我们会经常用break来跳出循环,如下:通过截图可以看出,当 i==1 && j==1时,跳出了内层的for循环。但是,如果我们想要跳出外层的循环该怎么办呢,我们可以通过在循环前边加标号来实现,如下:说明:1、标号紧贴循环语句,并且处于循环语句的前边;2、通过标号能跳出任意层数的循环;3、break和continue都可以使用标号来灵活控制循环语句;4、我们反编译.class文件时,能经原创 2016-11-01 18:33:40 · 49068 阅读 · 12 评论 -
Java整合Discuz遇到的几个问题小记
这几天给公司网站搭建了一个DiscuzX3.2的BBS论坛系统,遇到一些问题,特写来与大家分享,也给自己做个笔记。 1、如何用自定义的登录注册替换首页原先的登录注册 2、首页登录没反应,或者只在右上角闪现一个请稍等的弹出的解决办法 3、怎么在Java系统中实现论坛账号的注册和同步登录4、怎么解决注册完第一次登录需要激活的问题原创 2016-12-14 20:05:40 · 1082 阅读 · 0 评论 -
自定义JSP的日期格式化标签
平常在做项目的时候,经常会遇到要在JSP页面中,将我们后台传过来的long型的时间戳,转换为日期格式进行显示(如后台传过来 1490715599560,我们需要在页面上显示为 2017-03-28 23:39:59),这里记录并跟大家分享一下通过自定义标签的方式进行日期格式化。1、自定义标签处理类package com.daidai.demo.tag;import java.text.SimpleD原创 2017-03-29 01:00:15 · 2233 阅读 · 0 评论 -
Linux学习笔记--执行带Jar包的class文件
在Linux下执行引入了外部jar包的java程序原创 2017-09-27 18:43:58 · 7737 阅读 · 0 评论 -
JSP通用分页组件,带查询条件
—— 如果一段代码重复出现的次数多了,我们就需要把它独立出来!分页功能的代码就是这样的,在需要展示列表的页面,我们基本都需要加上分页功能,如果某天boss想要修改分页功能的样式~,天呐~~,我们不能去一个一个的改吧。下边给大家分享一个自己封装的通用分页组件。1. 效果展示 2. 使用方式 1 )在需要显示分页信息的位置,直接引入pagination.jsp页面。...原创 2018-03-07 15:26:52 · 8209 阅读 · 91 评论