Java
Zoey29
Work hard, Have fun, Make history!
展开
-
Java多维数组length
多维数组的length属性与一维数组不同。 一维数组表示数组的长度。 而多维数组,例如在二维数组中: 数组名.length指示数组的行数。 数组名[行下标] .length指示该行中的元素个数。 依此类推。...原创 2018-05-24 17:11:36 · 2116 阅读 · 1 评论 -
[Java]复习笔记(三)--基本语法
基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名:源文件名原创 2017-08-25 11:31:47 · 237 阅读 · 0 评论 -
[Java]复习笔记(二)--环境变量
在配置环境变量中: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要原创 2017-08-24 11:29:37 · 194 阅读 · 0 评论 -
[Java]复习笔记(一)--语言特性
主要特性 Java语言是简单的: Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 Java语言是面向对象的: Java语言提供类、接口和继承等面原创 2017-08-24 11:18:33 · 297 阅读 · 0 评论 -
[Java]线程间协作(通信)
通过保证在临界区上多个线程的相互排斥,线程同步完全可以避免竞争状态的发生,但有时还需要线程之间的协作。使用Condition便于线程间通信,它是通过调用Lock对象的newCondition()方法而创建的对象。创建Condition后,就可以使用await() 、signal()、 signalAll()方法来实现线程间的相互通信。为使用Condition,必须首先获取锁。原创 2017-03-21 14:01:13 · 248 阅读 · 0 评论 -
[Java]线程的同步
一、线程同步线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。 例如:创建并启动100个线程,每个线程都向同一个账户里添加一便士。当所有数据源同时访问同一数据源时,就会出现数据破坏问题。```import java.util.concurrent.*;public class AccountWithoutSync{private static Account account=n原创 2017-03-21 10:22:46 · 556 阅读 · 0 评论 -
Java多线程之线程的挂起与恢复(Suspend/Resume)
转载自http://www.linuxidc.com/Linux/2016-05/131103.htm一,介绍本文讨论Java多线程中,使用 thread.suspend()方法暂停线程,使用 thread.resume()恢复暂停的线程的特点。先介绍二个关于线程的基本知识:①线程的执行体是run()方法里面的每一条语句,main线程执行的则是main()方法里面的语句。②Thread.sleep(转载 2017-08-08 11:35:00 · 636 阅读 · 0 评论 -
ArrayList和LinkedList性能比较
ArrayLis转载自http://www.cnblogs.com/mahang/archive/2012/03/12/2392553.html今天看一框架的代码,看到有些 可以使用ArrayList的地方 使用的是 LinkedList,用到的情景是在一个循环里面进行顺序的插入操作。众所周知java里面List接口有两个实现ArrayList 和 LinkedList转载 2017-06-15 16:05:46 · 1038 阅读 · 3 评论 -
埃拉托色尼筛选法
埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼(Eratosthenes 274B.C.~194B.C.)提出的一种筛选法。 用于求一定范围内的质数. 步骤: (1)先把1删除(现今数学界1既不是质数也不是合数) (2)读取队列中当前最小的数2,然后把2的倍数删去 (3)读取队列中当前最小的数3,然后把3的倍数删去 (4)读取原创 2017-06-26 10:08:32 · 927 阅读 · 0 评论 -
[Java]泛型中值得注意的点
泛型(generic)是指参数化类型的能力。可定义带泛型类型的类/方法/接口,随后编译器会用具体的类型替换它。使用泛型的主要优点: 能在编译时而不是运行时检测出错误。泛型类型必须是引用类型。创建对象时:例new GenericStack<String>() 但构造方法实际定义是:例new GenericStack()可将泛型指定为另一种类型的子类型,这样的泛型类型称为受限的。定义一个原创 2017-06-08 13:16:04 · 343 阅读 · 0 评论 -
[Java]集合框架中值得注意的点
Collection接口中的iterator方法返回Iterator接口的一个实例,使用: next()方法顺序访问集合中的元素 hasNext()方法检测迭代器中是否还有更多的元素 remove()方法删除从迭代器返回的最后一个元素HashSet中的元素无特定顺序。 要加顺序使用LinkedHashSet,可按照元素插入Set的顺序提取; 强加一个不同的顺序使用TreeSet(Comp原创 2017-06-16 14:48:32 · 290 阅读 · 0 评论 -
[Java]servlet小结
servlet是一种特殊的程序,在支持servlet的Web服务器上运行。 Tomcat是一个可以运行servlet的Web服务器。 在Tomcat的bin目录下,用startup命令可以启动Tomcat,用shutdown命令可以终止Tomcat。servlet URL由主机名、端口和请求字符串指定 (eg:http://localhost:8080/zhangweb/ServletCla原创 2017-05-07 10:56:27 · 373 阅读 · 0 评论 -
[Java]Servlet WEB-INF
WEB-INF下面必须要有几个固定的文件夹和文件 web.xml 该web app的配置文件 lib 该web app用到的库文件 classes存放编译好的servlet原创 2017-03-31 13:26:10 · 258 阅读 · 0 评论 -
[Java]使用浏览器运行本地的applet
配置浏览器浏览本地的applet网页,解决不支持插件问题以及安全性问题 进入控制面板,打开Java,选择安全选项,在例外站点里面点击添加; 添加如下:http://localhost和file:///;再次打开本地网页就行了原创 2017-03-14 16:04:38 · 2797 阅读 · 0 评论 -
[Java]复习笔记(四)--对象与类
Java中的对象 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。Java中的类 类可以看成是创建Java对象的模板。 一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结原创 2017-08-25 15:52:55 · 269 阅读 · 0 评论 -
[Java]复习笔记(五)--数据类型
变量就是申请内存来存储值. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。Java 的两大数据类型: 内置数据类型 引用数据类型内置(基本)类型是在堆栈处分配空间存“值”。但是引用类型,是在堆里面分配空间存“值”。内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 四个整数型: byte:原创 2017-08-25 16:25:02 · 256 阅读 · 0 评论 -
[Java]线程优先级问题
对于线程优先级,需要注意:Thread.setPriority()可能根本不做任何事情,这跟你的操作系统和虚拟机版本有关线程优先级对于不同的线程调度器可能有不同的含义,可能并不是你直观的推测。特别地,优先级并不一定是指CPU的分享。在UNIX系统,优先级或多或少可以认为是CPU的分配,但Windows不是这样线程的优先级通常是全局的和局部的优先级设定的组合。Java的setPriority()转载 2017-09-12 16:21:25 · 345 阅读 · 0 评论 -
Summary of Java Operators
The following quick reference summarizes the operators supported by the Java programming language.Simple Assignment Operator = Simple assignment operatorArithmetic Operators + Additi...转载 2018-05-24 16:22:29 · 217 阅读 · 0 评论 -
Java常用正则表达式
Summary of regular-expression constructsCharactersx The character x \\ The backslash character \0n The character with octal value 0n (0 <= n <= 7) \0nn The character with octal val...转载 2018-05-22 16:29:25 · 318 阅读 · 0 评论 -
Java Scanner小知识点
Java中Scanner类广泛用于读取输入。Scanner scan = new Scanner(System.in);通过System.in stream创建了一个新的Scanner对象scan.next(); // returns the next token of inputscan.hasNext(); // returns true if there is anot...原创 2018-04-23 17:20:35 · 349 阅读 · 0 评论 -
Java异常
Java中异常的分类所有异常,都继承自java.lang.Throwable类。Throwable有两个直接子类,Error类和Exception类。ExceptionException是可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种...转载 2018-04-03 11:06:07 · 120 阅读 · 0 评论 -
Java正则表达式的解释说明
表达式意义:1.字符x 字符 x。例如a表示字符a \ 反斜线字符。在书写时要写为\\。(注意:因为java在第一次解析时,把\\解析成正则表达式\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\,而又带有\的都要写两次) \0n 带有八进制值 0的字符 n (0 \0nn 带有八进制值 0的字符 nn (0 \0mnn转载 2018-01-08 15:58:08 · 636 阅读 · 0 评论 -
深入浅出 JIT 编译器
JIT 简介JIT 是 just in time 的缩写, 也就是即时编译编译器。使用即时编译器技术,能够加速 Java 程序的执行速度。下面,就对该编译器技术做个简单的讲解。 首先,我们大家都知道,通常通过 javac 将程序源代码编译,转换成 java 字节码,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程转载 2017-12-28 15:33:32 · 249 阅读 · 0 评论 -
OutOfMemoryError
【一】: java.lang.OutOfMemoryError: Java heap space 这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: < jvm-arg>-Xms3062m < / jvm-arg> < jvm-arg>-Xmx3062m < / jvm-a转载 2017-12-19 16:48:19 · 412 阅读 · 0 评论 -
静态方法调用非静态方法
静态方法不能(直接)调用非静态变量,非静态方法可以引用静态变量。 静态方法不属于对象,是属于类的,不需要实例化; 而非静态变量是属于对象的,需要先实例化。 在一个类的静态成员中去访问其非静态成员,因为类的静态成员先于类的非静态成员存在,访问一个内存中不存在的东西会出错。相反,非静态方法可以引用静态变量。 因为静态变量是存储在静态内存单元内,可以直接用类进行调用,也可以用实例化的对象对其引用。原创 2017-12-27 15:47:49 · 10692 阅读 · 0 评论 -
java受检异常与运行时异常
正确运用异常处理机制,有助于提高程序的健壮性。 所谓程序的健壮性,就是指程序在多数情况下能够正常运行,返回预期的正确结果;如果偶尔遇到异常情况,程序也能采取周到的解决措施。 受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。 例如,喷墨打印机在打印文件时,如果纸用完或者墨水用完,就会暂停打印,等待用户添加打印纸或更换转载 2017-12-26 15:50:34 · 3406 阅读 · 1 评论 -
Java各种类详解
Java 内部类、成员类、局部类、匿名类等 Java有各种各样类,内部类、嵌套类、成员类、局部类(本地类)、静态类、匿名类、文件类以及这些组合起来的类,成员内部类,成员匿名类,成员嵌套类,本地匿名类等,真是多的不行,但有些其实是一个意思,在这里好好理一理。声明1.注意,这些称呼都是翻译过来的,但是同一个英文单词或一个词组翻译过来可能有不同叫法,比如local nested class,local有转载 2017-12-25 16:16:21 · 1777 阅读 · 0 评论 -
JVM -verbose参数详解
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 java -verbose:class在程序运行的时候有多少类被加载!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。 verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显转载 2017-12-22 15:06:57 · 11376 阅读 · 0 评论 -
并发与并行
在单CPU系统中,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。 而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。原创 2017-12-21 10:21:04 · 241 阅读 · 0 评论 -
[Java]线程池
Java线程池Java通过实现java.lang.Runnable来定义任务类,并创建线程: Runnable task=new TaskClass(task);new Thread(task).start(); 然而,为每个任务开始一个新线程可能会限制流量并且造成性能降低。 线程池是管理并发执行任务个数的理想方法。 Java’提供Executor接口来执行线程池中的任务,提供Execu原创 2017-09-12 16:53:42 · 254 阅读 · 0 评论 -
[Java]事件驱动程序设计
事件驱动模型三大要素 1)事件源:能接收外部事件的源体; 2)监听器xListener:能接收事件源通知的对象; 3)处理器Handler:用于处理事件的对象。在Java中使用监听器对象处理事件的方式,称为委托事件模型。原创 2017-03-14 13:37:51 · 1555 阅读 · 0 评论 -
[Java]HttpServlet
转载自http://www.cnblogs.com/panjun-Donet/archive/2010/02/22/1671290.htmlServlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的通用接口和类. 在javax.servlet.http包中定义了采用转载 2017-03-30 09:45:50 · 246 阅读 · 0 评论 -
[Java]main方法理解
Java中打得最熟练的一句public static void main(String args[]),又精确学习了些:public:表示此方法可以被外部调用。static: 表示此方法可以由类名称直接调用。void:主方法是程序的起点,所以不需要任何的返回值。main:系统规定好默认调用的方法名称,执行时默认找到main方法名称。String args[]:表示的是运行时的参数。参数传递原创 2016-04-04 15:47:11 · 672 阅读 · 0 评论 -
[Java] char、byte类型
因为Java所使用的字符码系统是**Unicode**,所以字符类型char在内存中占有2个字节。 byte 是字节数据类型,是有符号型的,占1个字节;范围为-128—127 。 char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符(**英文或是中文字符**)。原创 2016-03-25 11:09:54 · 651 阅读 · 0 评论 -
[Java] IO(一)
Java IO操作主要指使用Java进行输入、输出操作,Java中的所有操作类都存放在java.io包中,使用时需导入。 在整个java.io包中最重要的就是5个类、1个接口。 5个类:File、OutputStream、InputStream、Writer、Reader; 1个接口:Serializable。File类(操作文件)原创 2016-03-29 09:04:58 · 338 阅读 · 0 评论 -
[Java]数据存储(栈,堆,常量池)
速度: 寄存器 >堆栈 > 堆 > 其它寄存器(register) 栈(stack) 堆(heap)原创 2016-03-31 16:38:08 · 473 阅读 · 0 评论 -
[Java]常用的内存区域
在Java中主要存在4块内存空间,名称及作用如下:栈内存空间堆内存空间全局数据区全局代码区原创 2016-04-04 10:38:15 · 271 阅读 · 0 评论 -
[Java]方法重载与重写的区别
重载 1.单词:Overloading 2.定义:方法名称相同,参数的类型或个数不同。对权限无要求 3.范围:发生在一个类中。重写(覆写) 1.单词:Overriding 2.定义:方法名称、参数类型、返回值类型全部相同。被覆写的方法不能拥有更严格的权限 3.范围:发生在继承类中。原创 2016-04-13 17:05:27 · 286 阅读 · 0 评论 -
[Java]单向链表实现
链表是在数据结构经常见到的一种形式,Java中可以通过引用传递的方式进行实现。为了操作方便,使用内部类形式作为节点类。每个节点除了要保存自己的内容外,还要保存下一节点的引用。单向链表只能从前向后找。废话少说,上代码。class Link{ //链表类class Node{ //节点类定义为内部类private String原创 2016-04-09 15:31:26 · 501 阅读 · 0 评论 -
[Java]构造方法私有化-->单例模式
首先,对构造方法进行封装。因外部无法调用构造方法,尝试内部调用实例化为instance。原创 2016-04-07 22:10:09 · 536 阅读 · 0 评论