JAVA入门
文章平均质量分 78
diaotai
这个作者很懒,什么都没留下…
展开
-
JAVA语言常识
JAVA常见名词JDK JAVA标准版开发包JRE JAVA运行时环境JVM JAVA虚拟机JRE 是JDK的一部分,安装JDK时其子目录下会安装JRE,所以无需另行安装JREJVM 是JRE的一部分,JRE除了JVM外,还有其他运行JAVA的环境支持。JAVA程序运行机制高级程序语言运行机制编译型语言:针对特定平台(操作系统)直接将代码编译成可被该平台执行的机器码原创 2016-09-08 17:51:41 · 531 阅读 · 0 评论 -
JAVA之类加载机制与反射(二)
通过反射查看类信息JAVA程序中的对象分为两种类型——编译时类型和运行时类型,但有时,该对象的编译时类型是父类,而程序却需要调用该对象运行时的方法。为了解决这些问题,通常有两种办法第一种做法是假设在编译时和运行时发现对象和类的真实信息,在这种情况下,可以先使用instanceof运算符进行判断,再利用强制类型转换将其转换成其运行时类型的变量即可若编译时根本无法预知该对象原创 2016-10-16 20:40:08 · 545 阅读 · 0 评论 -
JAVA之Annotation(二)
自定义Annotation定义Annotation定义一个新的Annotation要使用@interface关键字,定义一个新的Annotation和定义一个新的接口非常像。定义了该Annotation类型之后,就可以在程序的任何地方使用该Annotation,通常可用于修饰程序中的类、方法、变量、接口等定义,通常Annotation要放在所有修饰符之前,往往会另起一行。A原创 2016-10-02 16:56:47 · 321 阅读 · 0 评论 -
JAVA之类加载机制与反射(三)
使用反射生成JDK动态代理在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成JDK动态代理类或动态代理对象。使用Proxy和InvocationHandler创建动态代理Proxy提供了用于创建动态代理类和代理对象的静态方法,它也是所有动态代理类的父类。如果在程序中为原创 2016-10-17 17:41:05 · 393 阅读 · 0 评论 -
JAVA之类加载机制与反射(一)
类的加载、连接和初始化系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类。JVM和类当调用java命令运行某个Java程序时,该命令会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动多少个线程,它们都处于该Java虚拟机进程里。同一个JVM中的所有线程、所有变量都处于同一个进程,它们都使用该JVM进程的内存区。当遇原创 2016-10-16 16:42:52 · 1819 阅读 · 0 评论 -
java数据类型
JAVA基本数据类型一共八种,分为两大类——boolean类型和数值类型。而数值类型又分为整数类型和浮点类型,而整数类型中的自负类型也可被单独对待,因此常把基本数据类型分为四类——整数类型(1个字节:byte;2个字节:short;4个字节:int;8个字节:long)原创 2016-09-10 19:29:34 · 495 阅读 · 0 评论 -
JAVA之面向对象(一)
类与对象基础知识JAVA里面可以是任意一个合法的标识符,但从可读性的角度上看,java类名必须是由一个或多个有意义的单词连缀而成,每个单词首字母大写,其余字母小写,单词直接不使用任何分隔符。类的修饰符可以是public,final.abstract或者省略修饰符。static修饰的成员不能访问任何没有static修饰的成员,但是没有static修饰的成员可以访问有s原创 2016-09-16 08:30:10 · 401 阅读 · 0 评论 -
JAVA之面向对象(二)
成员变量和局部变量基础知识成员变量分为类变量和实例变量,类变量的生命周期与类是一样的,实例变量的生命周期是与对象一致的。系统不会自动给局部变量初始化,也就是说,所有的局部变量,除形参外都必须显示初始化。也就是说,必须先给方法局部变量和代码块局部变量指定初始值,否则不可访问。形参在整个方法内都有效,形参的初始化由系统在调用该方法时完成,形参的值由方法的调用指定。原创 2016-09-16 10:07:20 · 387 阅读 · 0 评论 -
JAVA之面向对象(三)
类的继承方法的重写应遵循“两同两小一大”规则——两同指方法名相同,形参相同,两小指子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法生命抛出的异常类应比父类方法生命抛出的异常类更小或相等;一大指子类方法的访问权限应与父类方法的访问权限一致或更大。覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。super不能出现在stat原创 2016-09-16 12:20:53 · 439 阅读 · 0 评论 -
JAVA常用类库(一)
ScannerScanner是一个基于正则表达式的文本扫描器,它可以从文件,输入流,字符串中解析出基本类型数值和字符串值。Scanner使用时要导入import java.util.Scanner;如果要使用文件,则要导入import java.io.File;下面举两个例子: Scanner sc=new Scanner(System.in); while(sc.has原创 2016-09-20 20:04:07 · 1085 阅读 · 0 评论 -
JAVA之输入输出(一)
概述JAVA的IO通过java.io包下的类和接口支持,主要包括输入、输出两种IO流,每种输入流和输出流都可以分为字节流和字符流两类。字节流是以字节为单位处理输入、输出操作,而字符流则以字符来处理输入、输出操作。JAVA的IO流采取了一种装饰器设计模式,它将IO流分为底层节点流和上层处理流,其中节点流用于和底层的物理存储节点直接关联(不同的物理节点获取节点流的方式可能存在差异)但程原创 2016-10-03 17:24:08 · 908 阅读 · 0 评论 -
JAVA集合(一)
概述为了保存数量不确定以及具有映射关系的数据,Java提供了集合类。集合类主要负责保存、承装其他数据,因此也被称为容器类。集合类和数组有很大的不同,数组既可以保存基本类型又可以保存引用类型,但集合只能保存对象(实际上是对象的引用,但习惯上认为保存的是对象)Java集合类可以大致分为Set,List,Queue和Map四种体系,其中Set代表无序,不可重复的类;List代原创 2016-09-25 14:40:28 · 401 阅读 · 0 评论 -
JAVA泛型
基础当一个对象被放进集合时,集合就会忘记该对象本身的数据类型,当再次取出该对象时,该对象的编译类型就变成了Object类型。当程序取出对象后,若要进行强制类型转换,就可能出现ClassCastException。而且如果对放入对象没有限制,就可以什么对象都放进去,下面举一个例子。import java.util.ArrayList;import java.util.Collection;原创 2016-09-26 21:01:00 · 577 阅读 · 0 评论 -
JAVA异常处理
异常概述异常处理机制可以使程序中的异常处理代码和正常业务代码分离。多个catch块之后可以跟一个finally,原创 2016-09-28 20:45:00 · 722 阅读 · 0 评论 -
JAVA之输入输出(二)
输入/输出体系处理流的用法使用处理流的典型思路是使用处理流包装节点流,程序通过处理流来执行输入、输出功能,让节点流和底层的IO设备进行交互。只要流的构造器参数不是一个物理节点,而是一个已存在的流,那么就是出处理流。举个例子:package 输入输出体系;import java.io.FileOutputStream;import java.io.IOException;原创 2016-10-04 08:40:11 · 849 阅读 · 0 评论 -
JAVA之输入输出(三)
对象序列化对象序列化的含义和意义对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。兑现序列化机制允许把内存中的JAVA对象转换成平台无关的二进制流,从而把这种二进制流永久地保存在磁盘上。通过网络可以将这种二进制流传输到另一个网络节点。其它程序一旦获得了这种二进制流,都可以讲这种二进制流回复成原来的JAVA对象。序列化机制使得对象可以脱离程序的运行单独存在。原创 2016-10-04 17:30:51 · 972 阅读 · 0 评论 -
JAVA之Annotation (一)
概述从JDK1.5开始,JAVA增加了对元数据(MetaData)的支持,也就是Annotation(注解或注释)。Annotation是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并进行相应的处理。通过注释,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。代码分析工具、开发工具、部署工具可以通过这些补充信息进行验证或进行部署。Annotati原创 2016-10-01 20:25:51 · 1028 阅读 · 0 评论 -
JDK升级后Registry key 'SoftwareJavaSoftJava Runtime EnvironmentCurrentVersion'错误的解决及tools.jar seems to
今天我把JDK从1.7升级到了1.8,然而,在重新配置路径之后,无论是Ecplise还是Android Studio都依旧在用JDK1.7,在CMD输入java命令,显示Registry key 'SoftwareJavaSoftJava Runtime EnvironmentCurrentVersion,然后是要求1.7但是给的是1.8什么的。上网搜了一下,解决方法主要是这么几条——路径配置原创 2016-09-28 19:00:26 · 837 阅读 · 0 评论 -
JAVA概念之面向对象
软件开发有两个主流方法——结构化开发方法和面向对象开发方法,前者有C,Basic,Pascal。后来人们发现面向对象有着更好的可重用性和可拓展性,于是出现了大量面向对象的语言,如C++,JAVA,c#和Rubby。结构化程序设计采取自上而下,逐步求精的方法,将一个系统的功能逐步细化成一个一个的函数,因此也被叫做面向过程的语言,这类程序有时也被成为面向功能的程序或面向数据流的程序。面原创 2016-09-09 22:00:34 · 389 阅读 · 0 评论 -
UML(统一建模语言介绍)
UML是一种定义良好,功能强大,易于表达且普遍适用分建模语言,它的作用域不只限于面向对象的分析和设计,还支持从需求分析开始的软件开发全过程。UML2.0一共包括13种图形,活动图(activity diagram),类图(class diagram),通信图(communication diagram),组件图(component diagram),复合结构图(composite struct原创 2016-09-10 10:20:42 · 946 阅读 · 0 评论 -
java注释使用及error occurred during initialization of vm解决方法
JAVA注释java语言注释有三种——单行注释,多行注释以及文档注释。单行注释:只需要将双斜线//放在这一行的最前面即可多行注释:以/*开头,之后是需要注释的内容,最后以*/结束单行注释和多行注释在调试的时候会很有用处文档注释:以/** 开头,*/结尾。在开发时候可以在定义类\方法时使用文档注释,生成自己的文档。javadoc工具可以用于生成自己的文档,具体用法为javad原创 2016-09-10 18:48:36 · 85156 阅读 · 4 评论 -
java运算符
算术运算符加减乘除都会自动转型,int型相除若除数为0会有零异常,若一个是浮点型则不会这样。取余结果不一定是整数,其计算结果为第一个数除以第二个数得到一个整数,剩下的就是结果,取余和除法规则类似。若取余操作有一个或两个为浮点型,则第二个参数可以为0或0.0,其结果为NaN。赋值运算符赋值运算符的左边只能是变量位运算符位运算符是对二进制码进行操作。原创 2016-09-10 21:37:51 · 469 阅读 · 0 评论 -
JAVA之面向对象(六)
枚举类枚举类是一种特殊的类,一样可以有自己的成员变量,方法,可以实现一个或多个接口。一个JAVA源文件中只能有一个public的枚举类,且类名必须和文件名相同。使用enum定义的非抽象的枚举类会默认使用final修饰。枚举类的构造器只能用private修饰,且默认以private修饰。枚举类的所有实例必须在第一行写出,系统会自动添加public static final修饰原创 2016-09-18 18:39:29 · 419 阅读 · 0 评论 -
离散数学输入表达式打印真值表和主析/合取范式
这是我们学校离散数学的作业题目,我用JAVA写的,不废话,上代码:package lisanExperiment;import java.io.BufferedReader;import java.io.InputStreamReader;public class li { //用户输入的表达式(以字符串形式输入) StringBuilder inputStr; //flag代表原创 2016-09-17 21:38:37 · 5025 阅读 · 2 评论 -
JAVA之面向对象(五)
抽象类有抽象方法的类必须定义为抽象类,抽象类中可以没有抽象方法。抽象类不能创建对象,就算其中没有抽象方法也不可以。抽象类的主要作用在于被子类继承。static和abstract不能修饰同一个方法,所有没有所谓的静态抽象方法,不过这两个关键字可以一起修饰内部类。编写一个抽象父类,父类提供多个子类的通用方法,并将一个或多个方法留给子类实现,这就是一种模板模式。接原创 2016-09-18 09:51:09 · 399 阅读 · 0 评论 -
JAVA之面向对象(四)
JAVA增强的包装类为了解决JAVA基本的八种数据类型不能当做Object类事业的问题,java提供了包装类的概念,称其为基本数据类型的包装类。除了int型的包装类是Integer,char型的是Character,剩下六种的包装类都是将首字母大写。JDK1.5之后出现了自动装箱和自动拆箱功能,这两个功能允许基本数据类型可以和其对应的包装类的变量相互赋值。包装类都有原创 2016-09-18 07:50:23 · 354 阅读 · 0 评论 -
JAVA常用类库(二)
Date此处的date是指java.util.Date类,该类从JDK1.0开始就存在了,基本上已经过时,不建议使用CalendarCalendar本身是抽象类,所以不能使用构造器来创建实例。Calendar c=Calendar.getInstance(); System.out.println(c.get(Calendar.MONTH)); System.out原创 2016-09-20 20:33:56 · 580 阅读 · 0 评论 -
Java集合(二)
List集合List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List接口作为Collection接口的子接口。List判断两个对象相等只要通过equals()方法返回true即可当调用List的Set(int index,Object obj)方法时,前面的index必须是有效索引,该方法不会改变List集合的长度。Arr原创 2016-09-25 18:16:42 · 612 阅读 · 0 评论 -
JAVA之多线程(一)
概述几乎所有的操作系统都支持同时运行多个任务,通常一个任务就是一个程序,而一个 程序就是一个进程。当一个程序运行时, 内部可能包含多个顺序执行流,每个顺序执行流就是一个线程。进程与线程进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。当程序进入内存运行时,即为进程。进程拥有以三个特点:独立性:进程是系统中独立原创 2016-10-09 17:05:41 · 632 阅读 · 0 评论 -
JAVA之多线程(二)
线程的生命周期当线程被创建并启动之后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期总,它要经过(新建)New、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。当线程启动之后,它不可能一直霸占着CPU独自运行,所有CPU需要在多条线程之间切换,于是线程就也会多次在运行、就绪之间切换。新原创 2016-10-09 21:44:01 · 676 阅读 · 0 评论 -
JAVA之多线程(三)
线程通信传统的线程通信传统的线程通信可借助Object类提供的wait()、notify()和notifyAll()三个方法,这三个方法必须由同步监视器对象来调用,可分为以下两种情况对于使用synchronized修饰的同步方法,因为该类的默认实例this就是同步监视器,所有可以在同步方法中直接调用这三个方法对于使用synchronized修饰的同步代码块,同步监视器是sy原创 2016-10-10 21:19:56 · 407 阅读 · 0 评论 -
JAVA之Lambda表达式
Lambda表达式入门Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码块来创建只有一个抽象方法的接口(函数式接口)的实例。Lambda表达式的代码块可以代替那些函数式接口的匿名内部类创建对象,Lambda表达式的代码块将会代替实现抽象方法的方法体,Lambda表达式就相当于一个匿名方法。也就是说,Lambda表达式的主要作用就是代替匿名内部类的繁琐语法原创 2016-10-22 21:03:32 · 426 阅读 · 0 评论 -
JAVA之网络编程基础
网络编程基础知识网络基础知识计算机网络通畅是按照规模大小和延伸范围来分类的,常见的划分为:局域网(LAN)、城域网(MAN)、广域网(WAN)。Internet可以视为世界最大的广域网。如果按网络的拓扑结构来划分,可以分为星型网络、总线型网络、环型网络、树型网络、星型环型网络如果按网络的传输介质来划分,可以分为双绞线网、同轴电缆网、光纤网和卫星网。计算机原创 2016-10-13 19:54:47 · 584 阅读 · 0 评论 -
JAVA之输入输出(四)
NIO传统的输入流、输出流都是通过字节的移动来实现的(即使不直接处理字节流,在底层的实现还是依赖于字节处理),也就是说,面向流的输入、输出系统一次只能处理一个字节,因此面向流的输入、输出系统通常效率不高。JAVA新IO概述新旧IO的目的都是用于输入输出,不高新IO采用了不同的方式来处理——新IO才哦用内存映射文件的方式来处理输入、输出,新IO将文件或文件的一段区域映射到内存中,这样就可原创 2016-10-06 15:40:48 · 1468 阅读 · 0 评论