JAVA - 技术教程文章

Java常量池解析与字符串intern简介【代码】

在Java应用程序运行时,Java虚拟机会保存一份内部的运行时常量池,它区别于class文件的常量池,是class文件常量池映射到虚拟机中的数据结构。 1.CONSTANT_Class入口解析 数组类的符号解析较为特殊。若是基本类型数组,那么虚拟机将创建该基本类型的新数组类,并创建一个Class实例来代表该类型,数组类的定义类加载器为 启动类加载器。若是引用类型的数组,那么在此之前还会进行引用类型的解析,数组类的定义类加载器为引用类型的定...

Java正则表达式(1)【代码】

String类的三个内建正则表达式工具:1.matches()方法示例:检查一个句子是否以大写字母开头,以句号结尾 1publicstaticboolean checkFormat(String sentence){ 2return sentence.matches("^[A-Z].+\\.$"); 3 }2.split()方法示例:以空格分割knights字符串并以数组形式返回1publicstaticvoid test(){ 2 String knights = 3 "Then, when you have found the shrubbery," 4 + "you mus...

Java基础四【图】

Java基础四一、Switch语句二、if和switch区别 推荐使用if 三、函数Java中的函数和方法是同一个词 四、数组4.1、数组常见错误 五、内存机制六、转换成十六进制移位&操作6.2 查表法求十六进制查表法很多时候都非常好用,这样就非常好了,真的非常好用算的时候直接移四位,我喜欢,我觉得以后可以多做移位运算,真的是简单方便 6.3 查表法求星期几 原文:http://www.cnblogs.com/Renyi-Fan/p/6883048.html

Java设计模式——抽象工厂模式(Abstract factory)【代码】【图】

抽象工厂模式可以向客户提供接口,使得客户端在不必指定产品具体类型的情况下创建多个产品族中的产品对象。 系统的设计 采用抽象工厂模式设计出的系统类图如下: 从上图可以看出,抽象工厂模式涉及到角色: 抽象工厂角色(AbstractFactory):担任这个角色的是工厂方法模式的核心,它与应用系统的商业逻辑无关。通常使用Java接口或者抽象Java类实现,而所有的具体工厂类都必须实现这个Java接口或者继承这个抽象Java类。 具体工...

javaOO——内部类、多态、抽象

1、class文件的个数与java文件的个数无关,而是与java文件中类的个数相关2、class文件的名字与Java文件的名字无关,而是与类的类名有关3、如果类是public的,它的名字必须与java文件名保持一致,因此一篇java文件只能有一个public类内部类的class文件名为:外部类类名$内部类类名.class局部内部类书写位置:是定义在外部类的某个方法里面的。局部内部类除了定义的位置特殊以外,他仍是一个完整的类。局部内部类有一种特例,叫匿名内...

JAVA递归生成树形菜单【代码】【图】

递归生成一个如图的菜单,编写两个类数据模型Menu、和创建树形的MenuTree。通过以下过程实现:    1.首先从菜单数据中获取所有根节点。    2.为根节点建立次级子树并拼接上。    3.递归为子节点建立次级子树并接上,直至为末端节点拼接上空的“树”。  首先,编写数据模型Menu。每条菜单有自己的id、父节点parentId、菜单名称text、菜单还拥有次级菜单children。 1import java.util.List;2 3publicclass Menu {4priv...

最短路径问题 java【代码】

1import java.util.Scanner; 2 3publicclass Shortway{4int[][] e=newint[7][7];5int[][] a={{0,0,0},{1,2,1},{2,4,2},{3,2,2},{4,5,3},{3,6,1},{1,3,3}};6int inf=99999;7int[] book=newint[7];8int[] con=newint[7];9publicstaticvoid main(String args[]){ 10 Shortway s=new Shortway(); 11 s.go(); 12 } 13publicvoid go(){ 14 scannin(); 15int u; 1617for(int i=1;i<=6;i++){ 18 boo...

java中substring的用法

substring1.public String substring(int beginIndex)。 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 参数:  beginIndex - 开始处的索引(包括)。  返回:  指定的子字符串。 例如:  "unhappy".substring(2) returns "happy"  "Harbison".substring(3) returns "bison"  "emptiness".substring(9) returns "" (an empty string) 2.pu...

前端之JavaScript第一天学习(1)-JavaScript 简介【代码】【图】

javaScript 是世界上最流行的编程语言。这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript 是脚本语言JavaScript 是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。JavaScript 很容易学习。JavaScript:写入 HTML 输出<!DOCTYPE html><html><body><p> JavaScript 能够直接写入 HTML 输出流中: <...

java 基本语法元素

单行注释: //多行注释: /* */ java文档: /**JAVA文档 *注释 */ 语句块:语句块也叫做复合语句。一个语句块是以上括号和下括号{}为边界的语句集合;语句块也被用来组合属于某个类的语句。是用于指定作用范围。 空白:空白是空格,tabs和新行(换行符)的统称。空白可以改善源代码的视觉效果,增强源代码的可读性,可以表示缩进,具有规范性。原文:http://www.cnblogs.com/liaoliao/p/5006206.html

初识Javascript(一)【代码】

1、Javascript介绍<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>* {margin: 0;padding: 0;}</style><script>//如果script里面涉及到操作后面的元素,而又非得把script放在前面的话,需要加上: window.onload =function () {console.log("我是head里面的4");//这里再写代码(意思是:当整个页面加载完成之后,再执行这里的代码) }//一个页面中只能出现一次window.onloa...

Javascript常用

<script type="text/javascript"></script>页面加载后调用 1.window.onload=function(){} 图片完全加载之后提示 2.$(function(){}); 3.$(document).ready(function(){}); 浏览器窗口的内部高度 var w=window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 浏览器窗口的内部宽度 var h=window.innerHeight || document.documentElement.cli...

【java并发】条件阻塞Condition的应用【代码】

Condition将Object监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用。1. Condition的基本使用由于Condition可以用来替代wait、notify等方法,所以可以对比着之前写过的线程间通信的代码来看,再来看一下原来那个问题:有两个线程,子线程...

JavaSE学习(三):按位运算—数据结构(顺序、分支、循环)【代码】

第一节 按位运算1.1按位运算符& |1.1.1按位运算符可作算术运算做算术运算先将十进制转为二进制数,再按位计算,按位与全部为1,才为1,只要有0则为0;按位或只要有1则为1,全部为0才为0。最后按位输出再转为十进制。7&3 = 3 ----- 0111 & 0011 == 0011 37|3 = 7 ----- 0111 & 0011 == 0011 71.1.2按位运算符可作逻辑运算按位与&和按位或| 做逻辑功能时,与逻辑与&& 逻辑||逻辑功能一样,不一样的是没有短路功能。面试题:& ...

Java调用免费的WebService示例【天气预报】【国内手机号码归属地查询】【图】

1.免费的WebService地址:http://www.webxml.com.cn/zh_cn/index.aspx 提供了例如:天气预报,手机归属地查询等很多Web服务。2.调用天气预报服务示例: 使用JDK自带的wsimport命令生成客户端代码: wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 发现抛出如下异常:后来在网上找到了http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html这篇博客解决了问题,就是将网络上的WSDL文件先保存到...

Java DTO(data transfer object)的理解,为什么要用DTO

DTO即数据传输对象。现状对于分布式系统,需要在不同系统之间传递与转换域对象。因为我们不希望外部公开内部域对象,也不允许外部域对象渗入系统。传统上,数据对象之间的映射通过手工编码(getter/setter)的方式实现,或对象组装器(或转换器)来解决。我们可能会开发某种自定义映射框架来满足我们的映射转换需求,但这一切都显得不够灵巧。之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,为什么不能直接用实体模型...

Java Service Wrapper配置详解【代码】

1#encoding=UTF-82# Configuration files must begin with a line specifying the encoding3# of the the file.4 5#********************************************************************6# Wrapper License Properties (Ignored by Community Edition)7#********************************************************************8# Professional and Standard Editions of the Wrapper require a valid9# License Key to start...

JavaScript之包装对象【代码】

JavaScript对象是一种复合值:它是属性和已命名值的集合。通过"."符号来引用属性值。当属性值是一个函数时,称为方法。①一段你常用但却未必明白其真正底层原理的代码:var s = "hello world!"; var word = s.substring(s.indexOf(" ")+1,s.length);   如前面所说,这里变量s只是一个字符串原始类型,它怎么会有属性(s.length)和方法(s.indexOf()、s.substring())呢?没错,这正跟我们正要介绍的包装对象有关。原因是:只要...

Java中处理异常的9个最佳实践【图】

Java中处理异常的9个最佳实践Java中的异常处理不是一个简单的话题。初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常。 这就是为什么大多数开发团队都有自己的异常处理的规则和方法。如果你是一个团队的新手,你可能会惊讶于这些方法与你之前使用过的那些方法有多么不同。然而,有几种异常处理的最佳方法被大多数开发团队所使用。下面是帮助改进异常处理的9个最重要的方法。在Finally中清理资...

Java面向对象(三)—— 继承【代码】

标签: java 继承 抽象类 this super abstract概述多个类中存在相同的属性和行为的时候,将这些内容抽取到单独一个类中,那么多个类无需在定义这些属性和行为,只要继承那个类即可。多个类可以称为子类,单独这个类称为父类或者超类。子类可以直接访问父类中的菲斯有的属性和行为。通过 extends 关键字让类与类之间产生继承关系。 class SubDemo extends Demo{}继承的出现提高了代码的复用性集成的出现让类与类之间产生了关系,提供...

java基础语法

java基础语法  1,关键字不能为标示符且const和goto不能在java中存在  2,标识符必须为字母,下划线,数字和$。  3,第一字符也必须为字母,下划线,和$。数据类型  1,高低顺序为:字节型byte(1字节,8位),短整型short(2字节,16位),整型int(4字节,32位),长整型long(8字节,64位),单精度型float(4字节,32位),双精度型double(8字节,64位),字符型char(2字节,16位),布尔型boolean(不确定,结果只有ture和f...

Java源码之集合框架(图)【图】

百度java 集合图时,搜出来一张图,图的蛮不错的,现在借用一下。图片来自:http://blog.csdn.net/bondsui/article/details/8520078原文:http://blog.csdn.net/itismelzp/article/details/50554921

java7和java8新特性【代码】

以下来至网址:http://blog.csdn.net/samjustin1/article/details/52268004 Java7 新特性1.switch中可以使用字符串了String s = "test"; switch (s) { case "test" : System.out.println("test"); case "test1" : System.out.println("test1"); break ; default : System.out.println("break"); break ; } 2.运用List<String> tempList = new ArrayList<>();即泛型实例化类型自动推断3.语法上支持集...

org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unknown ?@1:5 in java.io【图】

用Pull方法解析XML文件时,有时候读取UTF-8个格式的xml会抛出如下的异常:org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unknown ?@1:5 in java.io.InputStreamReader@1feb2ea) 此异常存在的原因是:java 核心不支持 UTF-8 BOM 标记的文件。解决方式: ①保存UTF-8 xml 文件时,去掉 BOM标记,即: ②在读取xml时,去掉 BOM 文件头,具体参考 :http://koti.mbnet.fi/akini/java/unic...

java中求两个数组(集合)的交集,并集,差集【代码】

对于两个数组arr1=[1,3,4,5,8,9]arr2=[2,3,7,8,9]求出交集与并集test.java 1import java.util.ArrayList;2import java.util.Collections;3 4 5publicclass test1 {6publicstaticvoid main(String[] args) {7 ArrayList<Integer> tmplist=new ArrayList<Integer>();8int[] arr1={1,3,4,5,8,9};9int[] arr2={2,3,7,8,9}; 10 tmplist=Intersection(arr1,arr2); 11 OutPut(tmplist); 12 tmplist.clear(); 13 tmplist...

javaweb学习总结(二十)——JavaBean总结【代码】

一、什么是JavaBean  JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:这个Java类必须具有一个无参的构造函数属性必须私有化。私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。package gacl.javabean.study;/*** @author gacl* Person类就是一个最简单的JavaBean*/publicclass Person {//------------------Person类封装的私有属性-----------------------------------...

JavaScript笔记十

1.正则表达式 - 语法: - 量词 {n} 正好n次 {m,n} m-n次 {m,} 至少m次 + 至少1次 {1,} ? 0次或1次 {0,1} * 0次或多次 {0,} - 转义字符 \ 在正则表达式中使用\作为转义字符 \. 表示. \\ 表示\ . 表示任意字符 \w - 相当于[A-z0-9_] \W - 相当于[^A-z0-9_] \d - 任意数字 \D - 除了数字 \s - 空格 \S - 除了空格 \b - 单词边界 \B - 除了单词边界 ^ 表示开始 $...

JAVA面试——类加载机制

生命周期包括:加载、连接(验证、准备、解析)、初始化、使用、卸载类初始化:遇到new、getstatic、putstatic、invokestatic四条字节码指令时;常见场景:使用new实例化对象,读取或设置一个类的静态字段、调用一个类的静态方法使用java.lang.reflect包的方法对类进行反射调用初始化类时,父类没有初始化虚拟机启动,用户指定一个要执行的主类,主类没有初始化java.lang.invoke.MethodHandle实例解析结果为REF_getStatic、REF_put...

java虚拟机:JVM内存模型【图】

一、JVM内存模型图解JVM 运行时数据区 (JVM Runtime Area) 其实就是指 JVM 在运行期间,其对JVM内存空间的划分和分配。网上找到两幅图如下所示(个人认为第二个图Native Method Stack应该画在Java Thead模块中): 二、各数据区域介绍1、栈区栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法...

Java之递归遍历目录,修改指定文件的指定内容【代码】

EditProperties.java 1package PropertiesOperation.Edit;2 3import java.io.File;4 5/** 6 * 替换指定Porpoerties文件中的指定内容7 * 三个参数:8 * filePath:存放properties文件的目录9 * srcStr:需要替换的字符串 10 * desStr:用于替换的字符串 11 * */12publicclass EditProperties { 13privatestaticint num = 0; // 计数变量14publicstaticvoid main(String[] args) { 15 String filePath = "C:\\workspace\\wor...