
JavaSE由浅入深
文章平均质量分 50
JavaSE是Java的一个基础部分,只有掌握了它,才能向着JavaEE和JavaME发展,去做网站设计和Android开发。从基础开始,由浅入深,循序渐进,做好点滴积累。
life is wonderful
pay for life, pay for yourself
展开
-
三元表达式空指针问题
三元表达式空指针问题问题描述:如下代码标红处出现空指针异常:测试及定位问题:情景一:将num赋值为20,将flag赋值为true原创 2021-06-16 15:40:04 · 2120 阅读 · 0 评论 -
IDEA设置模板注释
IDEA设置模板注释 设置类文件模板注释类文件包含class、interface、enum、@interface首先是点击File,在下拉列表中选择Setting选项在弹出窗口选择Editor选项下的File and Code Template选项,在右侧选择includes选项卡下的File Header选项想要知道我们编写类文件模板注释可以使用哪些变量可以参考当...原创 2018-12-21 17:34:03 · 3715 阅读 · 2 评论 -
Netty入门教程——认识Netty
Netty入门教程——认识Netty 追那个小女孩 关注2017.07.16 15:20* 字数 2024 阅读 148585评论 20喜欢 249赞赏 1Netty什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty ...转载 2018-10-17 18:46:16 · 415 阅读 · 0 评论 -
Java将List集合的某一个对象的属性或枚举对应的值转换为数组解决方案
Java中List集合和枚举转换为数组解决方案最近在做项目的时候,经常遇到将将一个List集合中的对象的某个属性字段取出,然后组装成该字段属性对应类型的数组,也遇到了将一个枚举中每个元素对应的值取出,组装成该枚举元素的值对应的数据类型的数组。因此特此来总结一下JDK8之前和JDK8 Stream API分别是怎么做到的。需求:下面Junit测试方法中具体的需求都有,不再赘述。使用到的VO:pack...原创 2018-05-27 20:33:48 · 24572 阅读 · 2 评论 -
JDK8 Stream API使用心得
自己最近封装的年化收益相关工具类package com.huajin.tradeserver.service.util;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import jav...原创 2018-05-19 16:36:35 · 811 阅读 · 1 评论 -
List集合合并解决方案(两天的成果)
需求不再赘述了,下面注释有package com.qdfae.jdk.collections;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.After...原创 2018-05-19 15:44:42 · 4357 阅读 · 0 评论 -
遍历移除List中符合条件的元素的解决方案
代码只有经过多线程、效率和安全的考研,才算是优秀的代码JDK环境:JDK8遍历移除List中符合条件的元素可能产生问题:1、删除元素后List的元素数量会发生变化,随之索引也会发生变化2、对List进行删除操作可能会产生并发问题,遍历List的时候不允许并发操作本次需求:从已有的List列表中移除typeId是3和4的对象准备:/** * 遍历移除List中符合条件的元素 * 可能产生问题: * ...原创 2018-04-01 20:55:16 · 8585 阅读 · 0 评论 -
使用Set集合对List集合进行去重
使用Set集合对List集合进行去重前段时间正好遇到这样一个需求:我们的支付系统从对方系统得到存储明细对象的List集合,存储的明细对象对象的明细类简化为如下TradeDetail类,需求是这样的,我要对称List集合进行去重,这里的去重的意思是只要对象对象中的accountNo账号是相同的,就认为明细对象是相同的,去重之后要求是List集合或者Set集合。在进行上面的需求对象去重之前,先来看很简...原创 2018-03-22 23:00:21 · 17415 阅读 · 3 评论 -
解决Eclipse中无法直接使用sun.misc.BASE64Encoder及sun.misc.BASE64Decoder的问题
一直以来Base64算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder来进行的。但是这个类是sun公司的内部方法,并没有在Java API中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在Eclipse和MyEclipse中直接使用,却找不到该类。问题描述如下图:解决方案:第一步:在使用sun.misc包下的API的项目上...原创 2018-03-11 18:05:51 · 76678 阅读 · 24 评论 -
面试感悟----一名3年工作经验的程序员应该具备的技能
原文地址http://www.cnblogs.com/xrq730/p/5260294.html,转载请注明出处,谢谢! 前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2转载 2018-01-01 23:00:49 · 1873 阅读 · 0 评论 -
JDK8新特性:函数式接口@FunctionalInterface的使用说明
原文地址:http://blog.youkuaiyun.com/aitangyong/article/details/54137067我们常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。通过JDK8源码javadoc,可以知道这个注解有以下特点:1、该注解只能标记在"有且仅有一个抽象方法"的接口上。2、JDK8接口中的静转载 2017-11-15 23:41:10 · 500 阅读 · 0 评论 -
数据库连接池性能比对
和哥们讨论SpringBoot默认配置的时候,想到也是使用Spring默认数据源进行配置,想到了自己配置几种数据库连接池,他推荐给我的一篇好文章!原文:背景对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 。 NOTE: 本文所有测试均是mysql库测试结论 1:性能方面 hikariCP>druid>tomcat-jdbc>dbcp>转载 2017-09-20 21:53:27 · 858 阅读 · 1 评论 -
使用windows操作系统bat脚本运行打包好的可运行的jar包
今天群里问怎么使用bat文件运行打包好的可运行的jar包,在学习基础的时候学过很多Java中的命令,比如将.java源文件编译为.class字节码文件的javac命令,也学习过使用java命令运行类文件(也就是前面使用javac编译成功的类文件),也用过使用java -jar运行那些已经打包好的可运行jar文件,还接触过使用javap进行字节码文件反编译,可能后来我们使用Linux服务器后也会用到原创 2017-09-19 20:11:43 · 35062 阅读 · 0 评论 -
Java创建和解析Json数据方法(四)——Google Gson包的使用
(五)Google Gson包的使用1.简介Gson包中,使用最多的是Gson类的toJson()和fromJson()方法: ①toJson():将java对象转化为json数据(一般为json格式的字符串) (序列化) ②fromJson():从json数据(json格式字符串)转为java对象 (反序列化)也可以使用JsonObject和JsonArray类转载 2017-08-11 17:46:37 · 1734 阅读 · 0 评论 -
Java创建和解析Json数据方法(三)——json-lib包的使用
(三)json-lib包的使用 这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject、JSONArray和Java对象:beans, maps, collections, java arrays等的转换。1.简介 json-lib包是一个构造和解析json的类库,提供将Java对象:beans, maps, collection转载 2017-08-11 17:48:40 · 3210 阅读 · 0 评论 -
Java创建和解析Json数据方法(二)——org.json包的使用
(二)org.json包的使用1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, CDL的转换。 这篇学习笔记,主要介绍常用的一些类如:JSONObject、JSONArray、JSONStringer等的一些用法;介绍了如何将Map、Collection、Jav转载 2017-08-11 17:23:49 · 1753 阅读 · 0 评论 -
Java创建和解析Json数据方法(一)——Json知识
(一)JSON简单知识最近在做几个课程作业,涉及到网络数据传输用到Json,遂记录记录知识。1.JSON概述点击打开:JSON官网JSON : JavaScript 对象表示法(JavaScript Object Notation)JSON是轻量级的文本数据存储和交换格式。类似XML。JSON 独立于语言和平台。也就是说在C/C++, C#, Java, JavaScript, Perl, Pyt转载 2017-08-11 16:29:43 · 833 阅读 · 0 评论 -
Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color {转载 2017-08-10 20:54:59 · 1298 阅读 · 0 评论 -
项目代码优化:使用Java枚举常量代替类常量
项目代码优化:每页显示商品记录数在代码中原来是定义的一个类常量,因为在代码中多次使用到,因此在这个实现类中定义了一个类常量。使用和这样的代码运行是没有任何问题的,但是对于以后的代码维护和程序的灵活扩展都是不好的,就算是定义了类常量,也是属于硬编码问题。这里我们可以使用Java推荐使用的枚举。那么Java枚举是怎么使用的呢?学习C++的时候使用过,但是Java没有怎么使用过,有些遗忘,C++和Jav原创 2017-08-10 20:51:57 · 17781 阅读 · 5 评论 -
Java注解(Annotation)原理详解
序言注解在Java中到底是什么样的东西?具体是如何实现的? 本文将一层一层深入探究注解的实现原理。为了尽可能的将分析的过程呈现出来,所以文章包含了大量的截图和代码。(ps:如果图片看不清楚,请将网页放大来看,chrome可以通过ctrl+鼠标滚轮放大)前期准备知识方面开始分析前,提醒一下,下面的分析必须具备以下知识 1. 知道如何自定义注解 2. 理解Jav转载 2017-04-12 21:08:27 · 775 阅读 · 0 评论 -
子类可以继承到父类上的注解吗--有结论了
不了解注解基础知识的请先看《JDK 5 Annotation\注解\注释\自定义注解》 子类可以继承到父类上的注解吗?-----------------------------------------------------------------我们知道在编写自定义注解时,可以通过指定@Inherited注解,指明自定义注解是否可以被继承。但实现情况又可细分为多种转载 2017-04-12 18:49:12 · 16664 阅读 · 0 评论 -
JVM(三):类加载机制(类加载过程和类加载器)
一、为什么要使用类加载器?Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如:1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类;2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地方加载一个二进制流作为程序代码的一部分;(这个是Android插件化,动态安装更新apk的基础转载 2017-04-12 16:38:23 · 827 阅读 · 0 评论 -
JVM(一):体系结构 && 内存模型
在分析JVM体系结构之前,先看下Dalvik-JVM和Java-DVM的区别:1.DVM基于寄存器JVM基于内存Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。 2.字节码区别VM字节码由.class文件组成,每个文件一个class。JVM在运行的时候为每一个类装载字节码。相反的,Dalvik转载 2017-04-12 16:34:26 · 1011 阅读 · 0 评论 -
Java基础加强:细说JDK动态代理的实现原理
原文地址:http://blog.youkuaiyun.com/mhmyqn/article/details/48474815关于JDK的动态代理,最为人熟知的可能要数spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,转载 2017-04-11 00:13:07 · 1393 阅读 · 0 评论 -
设置Eclipse的类文件和xml文件代码自动补全
我们在平常编写代码的时候,不会记住大多数的类和文件的属性,方法等等,这就需要我们设置类文件和xml文件自动补全的功能,也可以说是代码提示功能。 类文件自动补全 第一步:打开Eclipse菜单栏生的Windows选项,下拉选择其中的最后一个首选项设置Preferance 第二步:在左边的列表里面找到Java,继续在原创 2016-12-17 14:23:27 · 29223 阅读 · 5 评论 -
玩转Eclipse开发工具(七)
十四编译器 (1)编译器的相关设置 编译级别 类文件产生 (2)构建时 通用 构建路径问题 输出文件夹 (3)错误与警告的设置 代码样式 潜在程序问题 命名遮蔽与冲突 过时与受限A原创 2016-06-28 18:36:32 · 3128 阅读 · 0 评论 -
玩转Eclipse开发工具(六)
九构建路径 (1)构建的概念 Build:项目的编译,测试,打包,产生文档这一系列操作。Eclipse中Java项目的构建一般只有编译。默认情况下是自动构建,在菜单栏上找到Project,在下拉列表中有一项是Build Automatically,它的前面是默认选中的,就是自动构建。 (2)构建路径的概念 Build原创 2016-06-28 17:52:43 · 3213 阅读 · 0 评论 -
玩转Eclipse开发工具(五)
我们继续接着上一篇的重构来看。 八重构 (3)Eclipse中的重构操作2 2)尽可能使用父类型 我们在RefactoringDemo2类中的main方法中声明一个RefactoringDemo2类的实例对象demo,我们可以使用重构来改为这个对象的父类型,选中demo,右击选择Refactor,找到Use Super原创 2016-06-25 15:33:41 · 3410 阅读 · 0 评论 -
玩转Eclipse开发工具(四)
八重构 (1)重构的概念 Refactoring,是指在程序功能不变的情况下,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和框架更趋合理,提高软件的扩展性和维护性。 (2)Eclipse中的重构操作1 1)重命名 对于类名,方法名以及变量名都是可以修改的,但是修改的时候直接在原有的基础上修改,这是不够的原创 2016-06-25 14:54:57 · 3230 阅读 · 0 评论 -
玩转Eclipse开发工具(三)
五快捷键 (1)快捷键的概念 快捷键,又叫快速键或热键,指通过某些特定的按键、按键顺序或按键组合;来完成一个操作。很多快捷键往往与Ctrl键、Shift键、Alt键、Fn键以及Windows平台下的Windows键和Mac机上的Meta键等配合使用。利用快捷键可以代替鼠标做一些工作。 (2)Eclipse中的常用快捷键原创 2016-06-24 16:04:58 · 3824 阅读 · 0 评论 -
玩转Eclipse开发工具(二)
我们接着博文《玩转Eclipse开发工具(一)》来继续说。 三Eclipse基本使用 (1)使用Eclipse创建Java项目、包、类 创建项目、包与类是一个整体的过程,在Eclipse开发工具中这是密不可分的,过去自己使用记事本习惯了的话,就必须要知道Eclipse中的类必须存在于项目中,类建议放在某个包中。 新建一个项原创 2016-06-22 17:35:28 · 4121 阅读 · 0 评论 -
玩转Eclipse开发工具(一)
由于之前学习JavaSE,大部分时间我所使用的编辑器是Windows操作系统自带的记事本及从网上下载的Notepad++编辑器,然后使用命令行工具编译和运行的,因此对Java的Eclipse开发工具不是很了解,这两天就专门看了一下Eclipse开发工具的使用以及好多自己不知道的用处。 一直以为Eclipse是专门为Java编程语言开发的IDE,然后自己去官网上去下载安装包原创 2016-06-22 11:04:51 · 12103 阅读 · 4 评论 -
JavaSE学习57:GUI编程之事件模型(二)
一实现两个数求和并且输出结果 利用所学的GUI编程实现上述的要求。 TFMath.java源代码:import java.awt.*;import java.awt.event.*;public class TFMath { public static void main(String[] args) { new TFFrame().launchFr原创 2016-06-20 22:34:47 · 2383 阅读 · 0 评论 -
JavaSE学习56:GUI编程之事件模型(一)
一事件概述 事件监听示意图: (1)事件 用户对程序的某一种功能性操作。Java中的事件类都包含在JDK的Java.awt.event包中。 Java中的事件主要有两种: 1)组件类事件:componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintE原创 2016-06-20 21:46:00 · 2771 阅读 · 0 评论 -
JavaSE学习55:GUI编程之布局管理器
一布局管理器概述 Java语言中,提供了布局管理器类的对象可以管理。 管理Component对象在Container对象中的布局,不必直接设置Component对象位置和大小。每个Container对象都有一个布局管理器对象,当容器需要对某个组件进行特定或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container对象的setLayout()方法改原创 2016-06-20 19:20:57 · 2533 阅读 · 0 评论 -
JavaSE学习54:GUI编程之几个常用的类
一GUI概述 AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface)编程。使用AWT所涉及的类一般在java.awt包及其子包中,GUI的各种元素(如:窗口,按钮,文本框等)由Java类来实现。 Component类和Container类是原创 2016-06-19 22:21:21 · 3135 阅读 · 0 评论 -
JavaSE学习53:细说多线程之内存可见性
一共享变量在线程间的可见性 (1)有关可见性的一些概念介绍 可见性:一个线程对共享变量值的修改,能够及实地被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。所有的变量都存储在主内存中。 线程的工作内存:每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的原创 2016-06-19 17:16:39 · 2677 阅读 · 0 评论 -
JavaSE学习52:细说多线程之Thread类和Runable接口
一线程创建的两种方式比较 线程创建和启动有两种方式,这里只是列出步骤,不再进行详细解释。 (1)继承Thread类class MyThread extends Thread{ public void run(){ ... }}MyThread mt=new MyThread();//创建线程mt.start();//启动原创 2016-06-18 22:44:37 · 2448 阅读 · 0 评论 -
JavaSE入门学习51:多线程编程(二)
二Java多线程 (4)线程的状态 线程状态转换示意图: 线程控制的基本方法: 1)sleep()方法 可以调用Thread的静态方法: public static void sleep(long millis) throws interruptedException 使原创 2016-06-18 21:40:36 · 2447 阅读 · 2 评论 -
JavaSE入门学习50:多线程编程(一)
一进程和线程 (1)进程和线程的基本概念 进程:程序(任务)的执行过程;持有资源(共享内存,共享文件)和线程。 线程:是一个程序内部的顺序控制流。 我们生活中的进程例子很多,一个进程就相当于一个你在电脑上启动的程序。比如我们打开最常用的聊天工具QQ,也可以打开Java的开发工具Eclipse等等。这些都算Window操作系原创 2016-06-18 20:35:45 · 2888 阅读 · 0 评论