
JavaSE
life is wonderful
pay for life, pay for yourself
展开
-
JavaSE入门学习36:Java集合框架之Set接口及其实现类HashSet和TreeSet
一Set接口 Set接口可以与数学中的集合的概念相对应。Set接口是Collection接口的子接口,Set接口里多个对象之间没有明显的顺序。具体详细方法请参考API文档(可见身边随时带上API文档有多重要),基本与Collection接口中定义的方法相同。只是行为不同(Set不允许包含重复元素)。 Set集合不允许重复元素,是因为Set判断两个对象相同不是使用原创 2016-05-06 20:39:20 · 1808 阅读 · 1 评论 -
Java网络编程
Java网络编程网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。java.net包中提供了两种常见的网络协议的支持:TCP: TCP是传输控制协议的缩写,它保障了两个应用程序之转载 2016-06-08 21:48:28 · 3672 阅读 · 0 评论 -
Java流(Stream)、文件(File)和IO
Java流(Stream)、文件(File)和IOJava.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java为I/O提供了强大的而灵活的支持,使其更广泛地转载 2016-05-22 18:17:55 · 6321 阅读 · 2 评论 -
玩转Eclipse开发工具(六)
九构建路径 (1)构建的概念 Build:项目的编译,测试,打包,产生文档这一系列操作。Eclipse中Java项目的构建一般只有编译。默认情况下是自动构建,在菜单栏上找到Project,在下拉列表中有一项是Build Automatically,它的前面是默认选中的,就是自动构建。 (2)构建路径的概念 Build原创 2016-06-28 17:52:43 · 3213 阅读 · 0 评论 -
玩转Eclipse开发工具(七)
十四编译器 (1)编译器的相关设置 编译级别 类文件产生 (2)构建时 通用 构建路径问题 输出文件夹 (3)错误与警告的设置 代码样式 潜在程序问题 命名遮蔽与冲突 过时与受限A原创 2016-06-28 18:36:32 · 3128 阅读 · 0 评论 -
你知道怎么样学习java吗?
原文地址:http://www.imooc.com/article/9257 Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。 1.1 思考一下 学习Java之前,先别急,静下心来好好想想: 1)你对学习Java是否有兴趣? 2)你是否能原创 2016-06-16 22:50:12 · 4550 阅读 · 2 评论 -
Java多线程编程
Java多线程编程Java给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。这里定义和线程相关的另一个术语:进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必转载 2016-06-17 22:08:38 · 15070 阅读 · 0 评论 -
JavaSE入门学习50:多线程编程(一)
一进程和线程 (1)进程和线程的基本概念 进程:程序(任务)的执行过程;持有资源(共享内存,共享文件)和线程。 线程:是一个程序内部的顺序控制流。 我们生活中的进程例子很多,一个进程就相当于一个你在电脑上启动的程序。比如我们打开最常用的聊天工具QQ,也可以打开Java的开发工具Eclipse等等。这些都算Window操作系原创 2016-06-18 20:35:45 · 2888 阅读 · 0 评论 -
JavaSE入门学习51:多线程编程(二)
二Java多线程 (4)线程的状态 线程状态转换示意图: 线程控制的基本方法: 1)sleep()方法 可以调用Thread的静态方法: public static void sleep(long millis) throws interruptedException 使原创 2016-06-18 21:40:36 · 2447 阅读 · 2 评论 -
玩转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 评论 -
JavaSE入门学习42:文件传输基础之I/O流(一)
一编码问题 计算机的编码问题 1)在一个IO文件下建立三个文本文件,第一个文件名是联想,内容也是联想;第二个文件名是联通,内容也是联通;第三个文件名是联,内容也是联。 2)依次打开三个文件,会发现名称叫做联的文件和名称叫做联通的文件中的内容都是乱码,而名称叫做联想的文件中的内容却是正常显示。 3)我们在建立文本文原创 2016-05-18 19:54:30 · 3792 阅读 · 0 评论 -
JavaSE入门学习43:文件传输基础之I/O流(二)
三RandomAccessFile类的的使用 RandomAccessFile类是java提供的对文件内容的访问类,既可以读文件,也可以写文件。RandomAccessFile类支持随机访问文件,可以访问文件的任意位置。 RandomAccessFile类的构造方法: RandomAccessFile类中的方法:原创 2016-05-20 12:19:28 · 4451 阅读 · 0 评论 -
JavaSE入门学习44:文件传输基础之I/O流(三)
三字节流的使用 6)FileOutputStream--->实现了向文件中写出byte数据的方法 FileOutputStream继承了OutputStream抽象类。 FileOutputStream类中的方法: 实例代码1:import java.io.*;public class FileOutDemo1{原创 2016-05-20 13:01:12 · 4361 阅读 · 0 评论 -
JavaSE入门学习47:Socket网络通信编程(一)
今天既然我们学习Java的Socket网络通信编程,那么在我们的现实生活中那些是Socket编程的应用呢?可以想象我们最常用的聊天工具软件QQ就是,当然MSN也是啦。 一网络基础知识 两台计算机通过网络进行通信的必要条件: 1)IP地址 2)网络协议 3)端口号 两台计算机网络通信示意图:原创 2016-06-07 15:39:56 · 2126 阅读 · 0 评论 -
JavaSE入门学习48:Socket网络通信编程(二)
三Socket通信 (1)Socket 套接字Socket是网络通信的基础,简单来说,可以认为是IP地址+端口,用来区分实现不同应用程序的通信。 两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一段称为一个Socket。Socket通常用来实现client-server连接。 java.net包中定义的原创 2016-06-07 16:13:49 · 1557 阅读 · 0 评论 -
JavaSE入门学习45:文件传输基础之I/O流(四)
五字符流的使用 (1)编码问题 这个问题我们早就说过了,不再过多赘述。 参考:JavaSE入门学习42:文件传输基础之I/O流(一) (2)认识文本和文本文件 Java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码);而文件是byte byte byte ...的数据;文本文件是文本(原创 2016-05-20 17:41:31 · 4487 阅读 · 0 评论 -
JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)
六对象的序列化和反序列化 (1)序列化和反序列化概述 Java提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。 将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用原创 2016-05-20 21:21:18 · 5139 阅读 · 0 评论 -
JavaSE入门学习49:Socket网络通信编程(三)
四通过Socket实现TCP编程 (4)使用多线程实现多客户端的通信 多线程服务器实现 应用多线程来实现服务器与客户端之间的通信基本步骤:。 1)服务器端创建ServerSocket,循环调用accept()方法等到客户端连接。 2)客户端创建一个socket并请求和服务器端连接。 3)服务器端接受客户原创 2016-06-07 16:43:43 · 1762 阅读 · 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学习53:细说多线程之内存可见性
一共享变量在线程间的可见性 (1)有关可见性的一些概念介绍 可见性:一个线程对共享变量值的修改,能够及实地被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。所有的变量都存储在主内存中。 线程的工作内存:每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的原创 2016-06-19 17:16:39 · 2677 阅读 · 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 评论 -
Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color {转载 2017-08-10 20:54:59 · 1298 阅读 · 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 评论 -
使用Set集合对List集合进行去重
使用Set集合对List集合进行去重前段时间正好遇到这样一个需求:我们的支付系统从对方系统得到存储明细对象的List集合,存储的明细对象对象的明细类简化为如下TradeDetail类,需求是这样的,我要对称List集合进行去重,这里的去重的意思是只要对象对象中的accountNo账号是相同的,就认为明细对象是相同的,去重之后要求是List集合或者Set集合。在进行上面的需求对象去重之前,先来看很简...原创 2018-03-22 23:00:21 · 17415 阅读 · 3 评论 -
遍历移除List中符合条件的元素的解决方案
代码只有经过多线程、效率和安全的考研,才算是优秀的代码JDK环境:JDK8遍历移除List中符合条件的元素可能产生问题:1、删除元素后List的元素数量会发生变化,随之索引也会发生变化2、对List进行删除操作可能会产生并发问题,遍历List的时候不允许并发操作本次需求:从已有的List列表中移除typeId是3和4的对象准备:/** * 遍历移除List中符合条件的元素 * 可能产生问题: * ...原创 2018-04-01 20:55:16 · 8585 阅读 · 0 评论 -
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 评论 -
Java将List集合的某一个对象的属性或枚举对应的值转换为数组解决方案
Java中List集合和枚举转换为数组解决方案最近在做项目的时候,经常遇到将将一个List集合中的对象的某个属性字段取出,然后组装成该字段属性对应类型的数组,也遇到了将一个枚举中每个元素对应的值取出,组装成该枚举元素的值对应的数据类型的数组。因此特此来总结一下JDK8之前和JDK8 Stream API分别是怎么做到的。需求:下面Junit测试方法中具体的需求都有,不再赘述。使用到的VO:pack...原创 2018-05-27 20:33:48 · 24572 阅读 · 2 评论 -
解决java.lang.NoClassDefFoundError: Could not initialize class方案
解决java.lang.NoClassDefFoundError: Could not initialize class方案问题描述:昨天上午来了,同事反应有个页面数据显示为空,最终在上午10点的这个节点查找两个相关微服务的日志,最终定位在assetserver微服务上,下面贴出的是服务器上的错误日志:2018-06-12 10:03:34 [http-nio-8107-exec-3] ERROR...原创 2018-06-13 18:40:09 · 120670 阅读 · 3 评论 -
怎么解决java.lang.NoClassDefFoundError错误
前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。我们往往花费时间去不断尝...转载 2018-06-24 17:22:35 · 3825 阅读 · 0 评论 -
项目代码优化:使用Java枚举常量代替类常量
项目代码优化:每页显示商品记录数在代码中原来是定义的一个类常量,因为在代码中多次使用到,因此在这个实现类中定义了一个类常量。使用和这样的代码运行是没有任何问题的,但是对于以后的代码维护和程序的灵活扩展都是不好的,就算是定义了类常量,也是属于硬编码问题。这里我们可以使用Java推荐使用的枚举。那么Java枚举是怎么使用的呢?学习C++的时候使用过,但是Java没有怎么使用过,有些遗忘,C++和Jav原创 2017-08-10 20:51:57 · 17781 阅读 · 5 评论 -
老调重弹:JDBC系列 之 <JDBC层次结构和基本构成>
前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解。所以便把JDBC 这个东东翻出来,老调重弹,好好总结一番,作为自己的笔记,也是给读者一个参考~~~本篇博文是我的上篇博文 老调重弹:JDBC系列 之 的续文,主要梳理一下JDBC的层次结构和基本构成。以下是本文的组织内容(用户可以点击上面的目转载 2017-04-18 22:59:47 · 959 阅读 · 0 评论 -
老调重弹:JDBC系列 之 <驱动加载原理全面解析>
前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解。所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者一个参考~~~以下是本文的组织结构,读者可以点击上面的目录查看:概述 一般情况下,在应用程序中进行数据库连接,转载 2017-04-18 22:56:04 · 1524 阅读 · 0 评论 -
JavaSE学习55:GUI编程之布局管理器
一布局管理器概述 Java语言中,提供了布局管理器类的对象可以管理。 管理Component对象在Container对象中的布局,不必直接设置Component对象位置和大小。每个Container对象都有一个布局管理器对象,当容器需要对某个组件进行特定或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container对象的setLayout()方法改原创 2016-06-20 19:20:57 · 2533 阅读 · 0 评论 -
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 评论 -
玩转Eclipse开发工具(一)
由于之前学习JavaSE,大部分时间我所使用的编辑器是Windows操作系统自带的记事本及从网上下载的Notepad++编辑器,然后使用命令行工具编译和运行的,因此对Java的Eclipse开发工具不是很了解,这两天就专门看了一下Eclipse开发工具的使用以及好多自己不知道的用处。 一直以为Eclipse是专门为Java编程语言开发的IDE,然后自己去官网上去下载安装包原创 2016-06-22 11:04:51 · 12103 阅读 · 4 评论 -
玩转Eclipse开发工具(二)
我们接着博文《玩转Eclipse开发工具(一)》来继续说。 三Eclipse基本使用 (1)使用Eclipse创建Java项目、包、类 创建项目、包与类是一个整体的过程,在Eclipse开发工具中这是密不可分的,过去自己使用记事本习惯了的话,就必须要知道Eclipse中的类必须存在于项目中,类建议放在某个包中。 新建一个项原创 2016-06-22 17:35:28 · 4121 阅读 · 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 评论 -
JVM(三):类加载机制(类加载过程和类加载器)
一、为什么要使用类加载器?Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如:1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类;2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地方加载一个二进制流作为程序代码的一部分;(这个是Android插件化,动态安装更新apk的基础转载 2017-04-12 16:38:23 · 827 阅读 · 0 评论