Java SE
文章平均质量分 80
miqi1227
道可道,非常道。名可名,非常名
展开
-
《Java8 实战》- 读书笔记第一章(02)
从方法传递到 Lambda接着上次的 Predicate,继续来了解一下,如果继续简化代码。把方法作为值来传递虽然很有用,但是要是有很多类似与 isHeavyApple 和 isGreenApple 这种可能只用一两次的方法定义一堆确实有点烦人。为了解决这个问题,Java8 它引入了一套新记法(匿名函数或 Lambda),然你可以这样写:List<Apple> isRedApples = filterApples(FilteringApples.apples,&nb原创 2022-03-23 16:03:58 · 217 阅读 · 1 评论 -
Java集合框架总结(4)——List接口的使用
Java集合框架总结(4)——List接口的使用 List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。1、List接口和ListIterator接口 List作为Collection接口的子接口,可以使用Collection接口里的全部方法。List是有序集合,所以List集合里增加了转载 2015-03-26 09:00:59 · 504 阅读 · 0 评论 -
Java 容器与数组
容器是用来保存多个对象的东西.严格来说是保存对象的引用.因为对象实际的数据是放在另外的地方的.放在容器中的只是指向那块内存区域的一个标识.JAVA中内置了数组.数组和其它容器的区别主要有三个:效率,类型,和存放基本类型的能力.JAVA中的数组是一种效率最高的存储和随机访问对象引用序列的方式.它就是一个简单的线性序列,所以访问是非常快.但它也损失了其他的特性.当创建一个数组时,它的长度就被固原创 2014-08-31 14:35:55 · 1509 阅读 · 0 评论 -
Java集合框架总结(5)——Map接口的使用
Java集合框架总结(5)——Map接口的使用Map用于保存具有映射关系的数据(key-vlaue)。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回falseMap中包含了一个keySet()方法,用于返回Map所以key组成的Set集合。 Map集合与Set集合元素的存储形式很像,如Set接口下有HashSet、Linked转载 2015-03-26 09:01:54 · 419 阅读 · 0 评论 -
Java基本数据类型的转换
/*基本数据类型的转换2015年3月31日08:21:20*/public class TestString{public static void main(String[] args){ //primitive->Wapper Classint i = 10;Integer i1 = i; //利用Autoboxing和AutoUnboxing原创 2015-03-31 09:33:50 · 742 阅读 · 0 评论 -
重写equals
1、equals方法和==对于基础类型而言,“==”比较的是基础类型的值。对于对象而言,“==”比较的是引用,即对象的内存地址equals()方法在Object基类中,其内部使用“==”实现的 public boolean equals(Object obj){ return this == obj;}如果希望不同内存但内容相同烦人两个对象equals时返回tru原创 2015-03-30 21:49:40 · 581 阅读 · 0 评论 -
Java 同步与锁
一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。 public class Foo { private int x = 100; public int getX() { return x;原创 2014-08-10 15:14:45 · 544 阅读 · 0 评论 -
Java集合框架总结(2)——Set接口的使用
Java集合框架总结(2)——Set接口的使用1、Set接口的使用 Set集合里多个对象之间没有明显的顺序。具体详细方法请参考API文档(可见身边随时带上API文档有多重要),基本与Collection方法相同。只是行为不同(Set不允许包含重复元素)。 Set集合不允许重复元素,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法。即两个对转载 2015-03-26 08:58:12 · 687 阅读 · 0 评论 -
内部类和匿名类
/*本程序证明了:内部类的所有方法都可以访问外部类的所有成员无论外部类的成员是何种控制符,都可以,因为内部类被当做了外部类的一个成员*/class A{private int j = 10;private void f(){System.out.println("FFFF");}class B//此处内部类可以使用static属性,不原创 2014-08-15 23:05:42 · 615 阅读 · 0 评论 -
不可变类详解
不可变类(immutable)类的意思是说创建给雷的实例后,该实例的Field是不可改变的。Java提供的8个包装类和Java.lang.String类都是不可变类如果需要自己创建自定义的不可变类(1)使用private和final修饰该类的Field(2)提供带参数的构造器,用于根据传入参数来初始化类里的Field(3)仅为该类的Field提供getter方法,不要为给类的fie原创 2015-04-01 21:05:17 · 1202 阅读 · 0 评论 -
Java集合框架的知识总结(1)
Java集合框架的知识总结(1)说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。 1、综述 所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。(数组既可以保存基本类型的数据也可以保存对象)。 当我们把一个对象放入集合中后,系统会把所有集合原创 2015-03-26 08:56:24 · 529 阅读 · 0 评论 -
Java集合框架总结(3)——TreeSet类的排序问题
Java集合框架总结(3)——TreeSet类的排序问题 TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。 1、自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型相同)。 j转载 2015-03-26 08:59:25 · 462 阅读 · 0 评论 -
多线程学习之线程阻塞机制
为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了原创 2015-09-24 20:58:02 · 6775 阅读 · 0 评论 -
eclipse生成可执行jar包
相信大家在开发java的时候一定会遇到要求将java工程打包成可运行的jar的需求,今天我在这篇博客中详细讲解一下生成可运行jar的两种方法,亲测完全可行。1. 工程中不包含第三方的jar包这种情况比较简单,选中需要生成jar的工程,右击-->Export,出现如下的窗口选中java--- > JAR file,出现如下窗口,此处要:选中 Expor原创 2016-11-11 14:58:19 · 953 阅读 · 0 评论 -
Jetty的工作原理以及与Tomcat的比较
Jetty 的工作原理以及与 Tomcat 的比较许 令波, Java 工程师, 淘宝网许令波,developerWorks 中国网站最佳作者,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章,也喜欢记录下工作和生活中的一些思考。个人网站是:http://xulingbo.net。简原创 2016-05-03 17:08:33 · 3095 阅读 · 0 评论 -
Java IO流的学习(1)
JAVA 通过 OutputStream InputStream 实现文件复制功能[java] view plaincopyprint?package org.iodemo; import java.io.File; import java.io.FileInputStream; import jav原创 2015-09-23 16:06:49 · 541 阅读 · 0 评论 -
Iterator和ListIterator
Iterator和ListIterator主要区别有:一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。二、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历。但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Itera原创 2015-09-12 15:07:09 · 409 阅读 · 0 评论 -
Java基础-类成员初始化顺序
类成员包括:静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:运行以上代码,我们会得到如下的输出结果:1、静态变量2、静态初始化块3、变量4、初始化块5、构造器这与上文中说的完全符合。那么对于继承情况下又会怎样转载 2014-11-03 20:30:48 · 586 阅读 · 0 评论 -
集合类hashCode()方法和equals()方法
1、散列码: Object中的HashCode方法会返回该对象的的内存真实地址的整数化表示,这个形象的不是真正抵制的整数值就是哈希码。2、利用哈希码向集合中插入数据的顺序? 向HashSet中添加对象时,HashSet先通过该对象的HashCode()计算出相应的桶,然后再根据equals()方法找到相应的对象,如果容器中已存在该对象则不再添加,如果原创 2014-11-16 15:20:40 · 983 阅读 · 0 评论 -
Java枚举类
public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样. */ public原创 2014-11-09 16:33:49 · 382 阅读 · 0 评论 -
String与StringBuffer的区别
String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。转载 2014-08-06 17:22:46 · 461 阅读 · 0 评论 -
深入Java核心 Java内存分配原理精讲
◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量转载 2014-08-06 14:22:52 · 383 阅读 · 0 评论 -
Java 线程
Java线程:概念与原理一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe转载 2014-07-28 14:11:06 · 416 阅读 · 0 评论 -
Java String类
String类 1、String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”;原创 2014-08-03 19:18:27 · 379 阅读 · 0 评论 -
JAVA中toString方法的作用
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法 回答补充:转载 2014-08-02 23:10:47 · 634 阅读 · 0 评论 -
Java toString()的用法
1.toString()方法Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。toString()方法将对象转换为字符串。看以下代码:package sample;class Villain {转载 2014-08-02 23:04:36 · 533 阅读 · 0 评论 -
Java SEsuper的用法
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.class Base { Base() { System.out.println("Base"); }} public class Checket extends Base { Checket() { super();//调用父类的转载 2014-07-24 18:11:31 · 552 阅读 · 0 评论 -
Java 包
"包"机制是java中特有的,也是java中最基础的知识。一些初学java的朋友,通常象学其它语言一样从教材上copy一些程序来运行,可是却常常遇到莫名其妙的错误提示。这些问题事实上都出在对"包"的原理不够清楚。本文将就此问题进行深入阐述。一、为什么java中要有"包"的概念?以一言概之,java中"包"的引入的主要原因是java本身跨平台特性的需求。因为java中的所有的资源也是转载 2014-07-28 14:02:27 · 398 阅读 · 0 评论 -
单例模式的七种写法
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == nu转载 2014-07-28 13:57:41 · 385 阅读 · 0 评论 -
Java23设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2014-08-11 08:28:26 · 515 阅读 · 0 评论 -
Java 多线程总结
以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要了,呵呵。虽然才大二,但是也快要毕业了,要加油了。这一篇文章主要关于java多线程,主要还是以例子来驱动的。因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,呵呵、大家可以去参考一些那些书籍。我这个文章主要关于实际的一些问题。同时也算是我以后复习的资料吧,。呵呵大家多多指教。同时希望多结交一些技术上的朋友。谢谢。----原创 2014-08-10 08:37:15 · 458 阅读 · 0 评论 -
java泛型
java泛型什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加原创 2014-09-15 15:39:04 · 396 阅读 · 0 评论 -
Java内部类的使用小结
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inn原创 2014-08-16 09:23:24 · 360 阅读 · 0 评论 -
Java输入输出流
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。原创 2014-08-16 22:58:45 · 531 阅读 · 0 评论 -
HashSet中equals()与hashCode()方法的重写
hashCode是散列码,用来快速查询用的 你看到的那一串的格式如下,比如一个String@4e57de "@ "前面的是你的类名,后面的就是散列码的16进制表示。hashCode的查询原理:先有很多个数组,然后你要往容器里面放东西,比如hashSet,如放一个String=“Hello”,那么计算机会先计算散列码,然后放入相应的数组中,数组的索引就是从散列吗计算来的,然后再装入数组里的容器里,比原创 2014-08-29 00:15:38 · 671 阅读 · 0 评论 -
Java 网络编程
网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的。首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话转载 2014-08-12 08:31:40 · 705 阅读 · 0 评论 -
java GUI设计和布局
GUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。抽象窗口工具包:java.awt:提供基本GUI组件,视觉控制,绘图工具等java.awt.event:事件处理组件和容器:组件:基本组成元素,凡是能够以图形化方式显示在屏幕上并能与用户交互的对象均为组转载 2014-08-11 23:16:19 · 5559 阅读 · 1 评论 -
Java 接口和抽象类的区别
1.概述一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 。面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用。说到了抽象转载 2014-07-28 13:50:21 · 497 阅读 · 0 评论