【java 第3节 详解第一个Java程序】教程文章相关的互联网学习教程文章

Java中自动装箱与拆箱详解

在讲装箱与拆箱之前我们要先了解一下这个问题的来源: Java中的类型分为基本类型(Primitive type)和类类型(Class type)两种: 基本类型包括byte型、char型、short型、int型、long型、float型、double型、boolean型八种。基本类型指的是直接包含值得类型,可提供语言级别的支持。 类类型包括Byte、Character、Short、Integer、Long、Float、Double、Boolean。为什么要用类类型呢?原因其实很简单,因为Java是一种面向对象的编程...

Java enum的用法详解【代码】

用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。publicenum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。enum Signal {GREEN, YELLOW, RED}publicclass TrafficLight {Signal color = Signal.RED;publicv...

java线程池工作原理及拒绝策略详解【图】

在多线程编程中,我们经常使用线程池来管理线程,以减缓线程频繁的创建和销毁带来的资源的浪费,在创建线程池的时候,经常使用一个工厂类来创建线程池Executors,实际上Executors的内部使用的是类ThreadPoolExecutor。它有一个最终的构造函数如下:corePoolSize:线程池中的核心线程数量,即使这些线程没有任务干,也不会将其销毁。maximumPoolSize:线程池中的最多能够创建的线程数量。keepAliveTime:当线程池中的线程数量大于cor...

java集合(五)Queue集合之PriorityBlockingQueue详解【代码】【图】

JDK 中无界优先级队列PriorityBlockingQueue 内部使用堆算法保证每次出队都是优先级最高的元素,元素入队时候是如何建堆的,元素出队后如何调整堆的平衡的?PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最好或者最低的元素,内部是平衡二叉树堆的实现。首先看一下PriorityBlockingQueue类图结构,如下:可以看到PriorityBlockingQueue内部有个数组queue用来存放队列元素,size用来存放队列元素个数,allo...

Java Executor 框架的实例详解【代码】【图】

大多数并发都是通过任务执行的方式来实现的。一般有两种方式执行任务:串行和并行。class SingleThreadWebServer { publicstaticvoid main(String[] args) throws Exception { ServerSocket socket = new ServerSocket(80); while(true) { Socket conn = socket.accept(); handleRequest(conn); } } } class ThreadPerTaskWebServer { publicstaticvoid main(String[] args) throws Exception { ServerSocket soc...

Java 详解 JVM 工作原理和流程【图】

作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时...

JVM详解之:java class文件的密码本【代码】【图】

目录简介一个简单的classClassFile的二进制文件class文件的密码本magicversion常量池描述符access_flagsthis_class和super_classinterfaces_count和interfaces[]fields_count和fields[]methods_count和methods[]attributes_count和attributes[]总结简介一切的一切都是从javac开始的。从那一刻开始,java文件就从我们肉眼可分辨的文本文件,变成了冷冰冰的二进制文件。变成了二进制文件是不是意味着我们无法再深入的去了解java clas...

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class data13{public static void main(String[] args){int a=129;int b=128;System.out.println("a 和b 与的结果是:"+(a&b));}}运行结果a 和b 与的结果是:128下面分析这个程序:“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,...

JAVA反射实例详解

一:反射???? 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。? 使用java的反射,一般有下面三步:??? 1:获得你想操作类的Class对象??? 2:通过第一步获得的Class对象去取得操作类的方法或是属性名??? 3:操作第二步取得的方法或是属性二:例子????Java的反射机制中类有Class对应,类的方法有Method对应,当然属性也有Field与之对应。2.1 通过反射...

一、JAVA环境变量配置详解——JavaWeb点滴

JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解 Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。 JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。( 今晚使用新系统配置,不知道怎么的需要加bin才可以在CMD运行,JAVA_HOME=C:\jdk1.5.0_06\bin; 下面是网上整理实践可使用贴上的,注意JDK和Eclipse必须同位数Bit才可以使用,不能是不同位数的程序,已实践...

JAVA线程池原理详解一【代码】【图】

线程池的优点1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。线程池的创建1 public ThreadPoolExecutor(int corePoolSize, 2 int maximumPoolSize, 3 long keepAliveTime, 4 TimeUnit unit, ...

JavaScript中return的用法详解

1、定义:return 从字面上的看就是返回,官方定义return语句将终止当前函数并返回当前函数的值,可以看下下面的示例代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> function func1(){ while (true){ return 1; } }; alert(func1()); </script></head><body></body></html>可以看到我在函数里面写了个死循环,然后在下...

JavaScript 各种遍历方式详解【代码】

为了方便例子讲解,现有数组和json对象如下:var demoArr = [‘Javascript‘, ‘Gulp‘, ‘CSS3‘, ‘Grunt‘, ‘jQuery‘, ‘angular‘]; var demoObj = {aaa: ‘Javascript‘,bbb: ‘Gulp‘,ccc: ‘CSS3‘,ddd: ‘Grunt‘,eee: ‘jQuery‘,fff: ‘angular‘ };for  可以直接看示例,用得太多了,很简单(function() {for(var i=0, len=demoArr.length; i<len; i++) {if (i == 2) {// return; // 函数执行被终止// break; /...

Java集合框架中的快速失败(fail—fast)机制详解【代码】

先说结论:在用for遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除),则会抛出ConcurrentModificationException。在单线程下用迭代器遍历修改,则不会报错。在多线程环境下则会报错。??原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCount的值。每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测mod...

详解Java解析XML的四种方法【代码】

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transformations),具体可参阅w3c官方网站文档http://www.w3.org获取更多信息。X...