Java基础
Java概述
环境搭建
基础语法
面向对象
集合
IO流
异常
线程
Socket网络编程
hughjin
在工作中学习,在学习中成长
展开
-
实用工具之开发常用工具包与类
Google GuavaOptional类:避免空指针MoreObjects工具类:作为java.util.Objects类的扩展,字符串操作,如split、join等操作函数式编程Apache Commonscommons-beanutils包:用于处理JavaBean相关操作,最常见的就是属性复制。如 BeanUtils.copyProperties()、ProperUtils.copyProperties()commons-lang包:如:StringUtilscommons-io包:原创 2020-05-20 10:50:32 · 280 阅读 · 0 评论 -
Java基础之多线程的5个经典同步问题
本文转载之http://blog.csdn.net/naruto_ahu/article/details/86723761. 生产者-消费者问题也叫缓存绑定问题(bounded- buffer),是一个经典的、多进程同步问题。即有两个进程:制造商和消费者,共享一个固定大小的缓存。制造商的工作是制造一段数据,放进缓存,如此反复。同时,消费者则一次消费一段数据(即将其从缓存中移出)。问题的核心就是要保...转载 2018-03-13 21:25:25 · 1905 阅读 · 0 评论 -
Java基础之Lock和synchronized的区别和使用
本文转载之http://www.cnblogs.com/baizhanshi/p/6419268.html 今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章。 在上一篇文章中我...转载 2018-03-13 21:49:36 · 338 阅读 · 0 评论 -
Java基础之线程
线程的概念 学习线程首先要理清楚以下概念:1. 进程:进程是一个静态的概念,执行中的程序,一个进程至少包含一个线程2. 线程:一个进程里面有一个主线程叫main()方法,是一个程序里面的,一个进程里面不同的执行路径。进程中负责程序执行的执行单元,线程本身依靠程序进行运行,线程是程序中的顺序控制流,只能使用分配给程序的资源和环境3. 在同一个时间点上,一个CPU只能支持一个线程在执行。因为CP...原创 2018-03-13 21:51:25 · 232 阅读 · 0 评论 -
Java基础之Java程序员最常犯的错误盘点之Top10
本文转载之http://blog.csdn.net/px01ih8/article/details/79434390人非圣贤,孰能无过。都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错。那么对于广大的Java程序员来说,它们最常犯的10个错误是什么呢?本文通过总结出Java程序员最常犯的10大错误,可以有效地帮组Java后...转载 2018-03-13 22:00:35 · 370 阅读 · 0 评论 -
Java基础之正则表达式
本文转载之http://www.jb51.net/tools/zhengze.htmlhttp://tool.oschina.net/uploads/apidocs/jquery/regexp.html目录本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平...转载 2018-03-14 10:12:07 · 192 阅读 · 0 评论 -
Java基础之生成不重复的数作为数据库表主键(18位)
package org.random;import java.util.Date;import java.util.Random;public class SeedUtil { private static Long randomNumber; private static Long curIndex = Long.valueOf(0L); public SeedUtil() {...原创 2018-03-14 14:39:43 · 4515 阅读 · 0 评论 -
Java基础之增强型for循环
目录增强型for循环语法:for(ElementTypeelement:arrayName){};增强for循环的原理增强型for循环注意事项增强型for循环语法:for(ElementTypeelement:arrayName){};举个例子:(1)int[]numArray={1,2,3,4,5,6};for(inti:numArray...原创 2018-05-07 10:50:06 · 63012 阅读 · 12 评论 -
Java常用工具类:java.util.Arrays
数组操作工具类-java.util.Arraysjava.util.Arrays类能方便的操作数组,测试的时候造数据经常用到一下方法。1.filll方法 :给数组中的某段元素附上相同值。int []arr = new int[5];Arrays.fill(arr, 2);for (int i : arr) { System.out.print(i + " ");}结果...原创 2018-12-13 17:48:57 · 549 阅读 · 0 评论 -
Java常用工具类:StringUtils
工具类路径:org.apache.commons.lang3.StringUtilsimport org.apache.commons.lang3.StringUtils;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class TestMain { p...转载 2015-05-27 14:47:06 · 407 阅读 · 0 评论 -
Java常用工具类:JsonUtil
为了解决接口返回值为以下Map转换成对象的问题{errors=[], successes=[{uid=70475, sDate={20190114=[3], 20190112=[3]}}]}Java对象属性中较简单的情况,直接使用反射取出字段名称和值放到对应map的key和value上即可。可以参考https://blog.csdn.net/qq_23490959/articl...原创 2019-01-07 15:50:27 · 3785 阅读 · 0 评论 -
学习总结之JSON字符串
JSON有三类元素:1、结构体(关键字:大括号)(对应的是对象)2、键值对(关键字:冒号)(对应的是对象里的属性)3、数组(关键字:中括号)(对应的集合)范例{ "animals": { "dog": [{ "name": "Rufus", "breed": "labrador", "count": 1, &quo原创 2018-12-10 19:43:24 · 310 阅读 · 0 评论 -
Java基础之泛型
本文转载之http://blog.csdn.net/harvic880925/article/details/49872903一、引入1、泛型是什么首先告诉大家ArrayList就是泛型。那ArrayList能完成哪些想不到的功能呢?先看看下面这段代码:[java] view plain copyArrayList<String> strList = new ArrayList<...转载 2018-03-12 16:50:42 · 294 阅读 · 0 评论 -
Java基础之集合
本文部分转载之http://blog.csdn.net/zhangerqing/article/details/8122075集合类简介数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到如下这样的问题:1、 我们需要该容器的长度是不确定的。2、 我们需要它能自动排序。3、 我们需要存储以键值对方式存在的数据。如果遇到上述的情况,数组是很难满足需求的,接下来本章将介绍另一...转载 2018-03-12 11:31:19 · 251 阅读 · 0 评论 -
Java基础之动态代理
作者:雨夜偷牛的人链接:https://www.zhihu.com/question/20794107/answer/23330381来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。关于动态代理设计模式很可能题主就在不知不觉中使用了,例如Spring中的AOP,Struts2中的拦截器等。先来看静态代理模式代码:package test;public interf...转载 2018-03-15 21:33:16 · 135 阅读 · 0 评论 -
Java基础之序列化与反序列化(对象流)
本文转载之https://www.cnblogs.com/ysocean/p/6870069.html1、什么是序列化与反序列化? 序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程 反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对...转载 2018-03-16 11:46:56 · 175 阅读 · 0 评论 -
Java基础之枚举-enum
用法三:向枚举中添加新方法如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。 JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... ...转载 2018-03-10 21:01:57 · 293 阅读 · 0 评论 -
Java基础之反射
以下文章片段转载之http://blog.csdn.net/sinat_38259539/article/details/71799078反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法...转载 2018-03-10 21:13:58 · 181 阅读 · 0 评论 -
Java基础之数组声明与初始化
以下文章转载之http://www.cnblogs.com/tutotu/p/6137723.html引言 学习了好久的java,每次要写数组的声明和初始化代码,总是理不清。最近又碰到了一次这种情况。这次拿出《Thinking In Java》好好总结一翻。数组声明 对于数组的声明其实都没多大问题,推荐的写法是使用 数据类型 + [] + 数组名称的方式,因为这种方式可以很清楚的表明这是某一种...转载 2018-03-11 09:40:41 · 241 阅读 · 0 评论 -
Java基础之中断控制语句break,continue,return的区别
以下文章转载之https://www.cnblogs.com/514929hgy/p/6915128.html1、break break :跳出当前循环;但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环; for (int i = 0; i < 10; i++) { if (i == 6) { ...转载 2018-03-11 10:03:25 · 976 阅读 · 0 评论 -
Java基础之静态绑定与动态绑定
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6554103.html 一:绑定 把一个方法与其所在的类/对象 关联起来叫做方法的绑定。绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)。 二:静态绑定 静态绑定(前期绑定)是指:在程序运行前就已经知道方法是属于那个类的,在编译的时候就可以连接到类的中,定位到这个...转载 2018-03-11 10:12:18 · 168 阅读 · 0 评论 -
Java基础之内部类
本文转载之https://www.cnblogs.com/yzssoft/p/7156809.html什么是内部类内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类内部类的共性...转载 2018-03-11 10:55:08 · 110 阅读 · 0 评论 -
Java基础之BigDecimal的使用与遇到的问题
本文前半部分转载之http://blog.csdn.net/qq_20785431/article/details/52281841 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数...转载 2018-03-11 11:18:50 · 1463 阅读 · 0 评论 -
Java基础之自定义异常
本文转载之https://www.cnblogs.com/AlanLee/p/6104492.html哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞Java开发的都知道,只是可能理解的不深,这个大家可以自己多看看...转载 2018-03-11 12:06:36 · 181 阅读 · 0 评论 -
Java基础之Spring事务管理使用注意
本文转载之http://blog.csdn.net/abc19900828/article/details/39497631使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。那么什么是检查型异常什么又是非检查型异常呢?最简单...转载 2018-03-11 12:11:09 · 267 阅读 · 0 评论 -
Java基础之IO流
本文部分转载之http://www.cnblogs.com/xdp-gacl/p/3634409.html一、JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说...转载 2018-03-11 23:22:39 · 303 阅读 · 0 评论 -
Java基础之基本数据类型容易忽略的问题
1.Integer与Long对象初始化Integer a = 100,b = 100;Integer a1 = 128,b1 = 128;System.out.println(a==b);System.out.println(a1==b1);Long m = 100L,n = 100L;Long m1 = 128L,n1 = 128L;System.out.println(m==n);...原创 2018-03-15 20:15:12 · 294 阅读 · 0 评论