java学习
JokerMi
以绝大多数人的努力程度之低 根本轮不到去拼天赋
展开
-
理解多线程中的join方法
join方法用得不多,当A线程执行到了B线程的join()方法时,A就会等待,等B线程都运行完,A线程才会执行。使用join()方法时,会产生异常。用一个小程序说明join方法的使用技巧:class Demo implements Runnable{ public void run() { for(int x=1; x { System.ou原创 2015-10-08 21:05:55 · 6619 阅读 · 0 评论 -
java中equals()和hashCode()方法详解
有许多人学了很长时间的Java,但一直不明白hashCode方法的作用,我来解释一下吧。首先,想要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可原创 2015-01-04 15:50:48 · 629 阅读 · 0 评论 -
一个经典例子让你彻彻底底理解java回调机制
以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack callback转载 2014-12-25 09:46:27 · 545 阅读 · 0 评论 -
android获取相册照片和获取拍照照片并做简单剪裁
在Android的开发过程中,我们可能会读取手机里面的照片或者通过相机拍摄获取照片,这是两种常用的获取图片的方式,在做项目过程中也会经常遇到,下面来介绍一下这两种获取方式..1.从本地相册获取照片:一般就是写出这个方法[java] view plaincopyprotected void getImageFromAlbum() {原创 2014-12-31 21:14:42 · 1961 阅读 · 0 评论 -
三种XML解析方法总结
SAX解析今天晚上我学习了下XML的解析,解析XML方法有SAX和DOM解析和Pull解析,今天先学习了下SAX,每天8点下班,下班回来还要自己做饭,所以每天我都要奋斗到1点左右,然后早上8点起来做饭带到公司去吃,刚毕业的程序猿很苦逼吧,不过不要紧,我相信通过我的努力,这一切都会改变,fighting...哈哈,废话不多说了,看项目吧如果要用SAX来解析xml文档,则需要一个类原创 2014-12-25 19:39:48 · 928 阅读 · 0 评论 -
Android Service与Activity之间通信的几种方式
在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介绍两种方式转载 2014-12-25 10:00:50 · 618 阅读 · 0 评论 -
jdk,jre,jvm的区别
JVM(Java Virtual Machine Java虚拟机)可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如window运行这些Java程序。JRE(Java Runtime Environment Java运行环境)包括Java虚拟机(JVM Java Virtual原创 2014-11-18 23:41:22 · 499 阅读 · 0 评论 -
一个计算机专业学生几年的Java编程经验汇总
1. 关于动态加载机制学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:在命令行窗口运行Java程序的时候,加上这个很有用的参数:java -verbose *.class转载 2014-11-19 00:13:15 · 1388 阅读 · 0 评论 -
java中的运算符
Java中的运算符(操作符) 程序的基本功能是处理数据,任何编程语言都有自己的运算符。因为有了运算符,程序员才写出表达式,实现各种运算操作,实现各种逻辑要求。 为实现逻辑和运算要求,编程语言设置了各种不同的运算符,且有优先级顺序,所以有的初学者使用复杂表达式的时候搞不清楚。这里详细介绍一下Java中的运算符。 Java运算符很多,下面按优先顺序列出了各种运算原创 2014-11-19 00:15:30 · 592 阅读 · 0 评论 -
java虚拟机以及与运行原理分析
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是原创 2014-11-17 16:06:07 · 561 阅读 · 0 评论 -
java 回调函数
java回调一般来说分为以下几步:声明回调函数的统一接口interface A,包含方法callback();在调用类caller内将该接口设置为私有成员private A XXX;在caller内提供实现A接口的public方法(将外部该接口的实现类通过形参传入caller的XXX);caller的某个方法dosth()中会用到XXX.callback()方法;在caller的实例中,先原创 2014-11-16 14:59:58 · 661 阅读 · 0 评论 -
为什么匿名内部类参数必须为final类型
首先,这关系到java对象中的生命周期的问题。基础数据类型和引用变量(不是被引用的对象)做局部变量时(这里是和做为变量成员变量区别,它们作为成员变量后就作为对象的一部分和对象的生命周期相同了);它们的生命中周期是有作用域的,它没有受生命周期影响这一说,但是同样在这一作用域创建的对象的生命周期并不受作用域的限制。 局部变量的生命周期与局部内部类的对象的生命周期的不一致。原创 2014-10-29 12:17:39 · 764 阅读 · 0 评论 -
java线程的作用详解
这是篇关于java线程的文章,写的非常通俗易懂的,适合任何读计算机的同学学习. 线程同步我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 当多个线程同时读写同一份共享资源的时候,可能会引起冲突原创 2014-08-22 15:41:44 · 1196 阅读 · 0 评论 -
Java synchronized详解
第一篇:使用synchronized同步加锁的是对象,而不是代码。因此,如果你的类中有一个同步方法,这个方法可以被两个不同的线程同时执行,只要每个线程自己创建一个的该类的实例即可。 参考下面的代码:class Foo extends Thread { private int val; public Foo(int v) {原创 2015-03-09 20:03:23 · 328 阅读 · 0 评论 -
java 单例模式
关于单例模式的文章,其实网上早就已经泛滥了。但一个小小的单例,里面却是有着许多的变化。网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头。企图把这个单例说透,说深入。但愿我不会做的太差。 首先来看一个典型的实现: 1 /** 2 * 基础的单例模式,Lazy模式,非线程安全 3 * 优点:lazy,初次使用时实例化原创 2015-03-09 19:02:57 · 443 阅读 · 0 评论 -
java中HashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap原创 2015-09-11 11:05:08 · 405 阅读 · 0 评论 -
JNI的简单使用
Java通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在Windows平台下是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使Java可以实现和本地机器的紧密联系,调用系统级的各接口方法使用的简单流程:一、Java中所需要做的工作1、在Java程序中,首先需要在类中声明所调用的库名称,如[java] view原创 2015-09-27 20:12:27 · 589 阅读 · 0 评论 -
Java覆盖和隐藏
先上题,题目如下,请分析输出结果:public class MainClass { public static void main(String[] args) { Fu f = new Zi(); Zi z = new Zi(); System.out.println("f.num:"+f.num); Sy原创 2015-09-24 22:30:47 · 705 阅读 · 0 评论 -
JVM学习笔记系列
一、前言:JVM是每一位从事Java开发工程师必须翻越的一座大山!JVM(Java Virtual Machine)是JRE的一部分,从字面上的意思来讲就是一个虚拟的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM虚拟了一套完善的硬件架构(处理器、堆栈、寄存器等,相应的指令系统)。Java语言最重要的特点就是跨平台运行,其关键就是JVM实现了跨平台操作。JVM是原创 2015-09-24 21:56:15 · 866 阅读 · 0 评论 -
让你彻底理解hashCode的作用
============================================================ 如何理解hashCode的作用:============================================================ 以java.lang.Object来理解,JVM每new一个Object,它都会将这个Object丢到一个Has原创 2015-09-24 21:14:23 · 2270 阅读 · 0 评论 -
Java 类中各成分加载顺序 和 内存中的存放位置
一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9; StaticCode.show();3.在命令行中运行:java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置:利用语句进行分析。1.Person p=new Person("z原创 2015-08-01 15:44:02 · 510 阅读 · 0 评论 -
Java多线程-线程的同步与锁
一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。package cn.thread;public class Foo { private int x = 100; public int getX() { r原创 2015-07-19 22:59:47 · 482 阅读 · 0 评论 -
JAVA中的数据存储(堆及堆栈)
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(publ原创 2015-07-19 11:10:57 · 388 阅读 · 0 评论 -
Java高质量代码之 — 泛型与反射
在Java5后推出了泛型,使我们在编译期间操作集合或类时更加的安全,更方便代码的阅读,而让身为编译性语言的Java提供动态性的反射技术,更是在框架开发中大行其道,从而让Java活起来,下面看一下在使用泛型和反射需要注意和了解的事情 1.Java的泛型是类型擦除的 Java中的泛型是在编译期间有效的,在运行期间将会被删除,也就是所有泛型参数类型在编译后都会被清除掉.请看以原创 2015-07-18 22:58:24 · 406 阅读 · 0 评论 -
HTTP POST GET 本质区别详解
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POS转载 2015-07-14 19:59:07 · 444 阅读 · 0 评论 -
java基本数据类型的多重转型
你真的了解Java中的负数吗,你真的能弄清楚java中的多重转型吗,如果不是那么清楚,那么请看一下内容:下面这行代码的输出是什么??123publicstaticvoid main(String[] args) { System.out.println(0xffffffff);原创 2015-05-08 20:47:13 · 873 阅读 · 0 评论 -
Java中的回调函数学习-深入浅出
Java中的回调函数一般来说分为以下几步:声明回调函数的统一接口interface A,包含方法callback();在调用类caller内将该接口设置为私有成员private A XXX;在caller内提供实现A接口的public方法(将外部该接口的实现类通过形参传入caller的XXX);caller的某个方法dosth()中会用到XXX.callback()方法;在caller的实原创 2014-07-15 17:25:24 · 1129 阅读 · 0 评论 -
Eclipse中设置背景颜色与字体大小和xml文件中字体大小调整
Eclipse中代码编辑背景颜色修改:代码编辑界面默认颜色为白色。对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些。设置方法如下:1、打开window / Preference,弹出Preference面板 2、展开General标签,选中Editors选项,展开。 3、选中 Text Editors,右边出现TestEditors面板转载 2013-12-21 09:25:20 · 1124 阅读 · 1 评论 -
Hibernate---我的Hibernate学习笔记
Hibernate---我的Hibernate学习笔记 软件开发的分层思想:三层架构:数据表现层业务逻辑层数据持久层SUN的桌面应用Swing AWT普通Java类JDBCS原创 2014-03-16 15:41:12 · 1679 阅读 · 1 评论 -
依赖注入详解
目录目录1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Se转载 2014-03-15 21:17:30 · 1033 阅读 · 0 评论 -
JAVA学习笔记之泛型接口
应该是我很久没有好好学技术了,有时候想用的时候却发现不会写,比如今天遇到了泛型接口,所以要记录一下,这样才能更明白...在这里我并不想说泛型接口怎么写,这个很简单,后面会写的,只是想说我为什么要用.泛型接口的意图是什么?请看如下的问题:Java代码 abstract class BaseBean{ //略 } Interface原创 2014-03-06 21:46:39 · 1375 阅读 · 0 评论 -
java和C++ C比较
先从C开始说起,它通常在底层,写一写驱动逻辑等等的代码。所谓嵌入式,一般都是C的,学好C,必然离不开数据结构,很多初学者认为C和数据结构是一码事。其实数据结构更多的是一种思想和算法。里面的数据结构,列表,堆栈,树,其实在其他语言也都有使用,只是被封装好了而已。个人总结下C的优点:很清晰,逻辑性相对来说非常强的,更好的与硬件设备打交道(当然C++有时也可以)是因为有指针。缺点,学习难度比较大。转载 2014-02-28 18:41:11 · 734 阅读 · 0 评论 -
JAVA 的文件操作
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择。因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力。本章IO类的使用就从读写文件开始。11.3.1 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文原创 2014-02-25 21:27:47 · 589 阅读 · 0 评论 -
java反射机制
摘要Reflection 是 Java 被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的 class 的内部信息,包括其 modifiers (诸如 public, static 等等)、 superclass (例如 Object )、实现之 interfaces(例如 Cloneable ),也包括 fiel转载 2014-01-03 20:53:45 · 583 阅读 · 0 评论 -
getClass(),class属性和getName()解析(整理)
一、getClass方法:类型:public final Class getClass()功能:返回该对象的运行时类的java.lang.Class对象(API上的解释)有方法类型可以知道,该方法只能由类的实例变量调用例子:[java] view plaincopyJButton b1 = new JButton("b转载 2014-01-03 20:48:45 · 671 阅读 · 0 评论 -
Class.forName和New的比较
在初始化一个 类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要有什么区别?它们的区别在于创建对象的方 式不一样,前者是使用类加载机制,后者是创建一个新类。那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩、可扩展和可重用等软件设计思想。 Java中工厂模式经常使用newInstance()方法来创建对象,因此从为什么要使用工厂转载 2014-01-03 20:50:36 · 506 阅读 · 0 评论 -
jdk环境变量配置
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-6u14-windows-i586.exe2、安装jdk-6u14-windows-i586.exe3、配置环境变量:右击“我的电脑”-->"高级"-->"环境变量"原创 2013-12-14 14:26:01 · 606 阅读 · 0 评论 -
JDK1.6官方下载—SUN官方API中文版【JDK1.6】
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe JDK6 API CHM中文参考下载:JDK6API中文参考070114.rar :http://chin原创 2013-12-14 14:07:47 · 3593 阅读 · 1 评论 -
Java的垃圾回收机制
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。System.gc()Runtime.getRuntime().gc() 上面的方法调用时用于显式原创 2013-11-16 18:18:16 · 660 阅读 · 0 评论 -
Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
1.Java对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。转载 2013-11-16 17:11:13 · 1093 阅读 · 0 评论