Java技术栈
文章平均质量分 76
Java技术的总结与实际项目的练习操作详细信息,其中包括企业级应用知识和具体项目的说明等等
suwu150
业精于勤,荒于嬉;行成于思,毁于随;磨刀不误砍柴工。
展开
-
教学管理系统E-R建模
对于教学管理系统,我们就很容易想到教学管理中肯定有老师,而老师是有性别,年龄,电话号码,家庭住址作为属性的,有老师就一定有课程,老师可以进行授课,老师可以以一对多的形式讲授特定的课程系,而课程要进行区分,所以课程也是要有属性的,那就给课程一个编号,名称,以及上课时间地点等信息,有这么多课程和老师,总不能都由校长负责管理吧,那就在老师钟找出一个人进行替校长管理相同类型课程或授课老师的事务,那么就需要一个主管来管理老师,既然有一个主管负责授课内容基本一致的老师和性质相同课程的管理,那就很明显会有不同性质的团队区原创 2016-10-03 18:04:05 · 24054 阅读 · 0 评论 -
Java中字符串两种等于的方法的对比
Java中,我们要经常进行条件的判断,但是对于两种判断方式“==”和“equals()”,又不是很清楚具体的使用方法 1、 其中::: “==”:是用来比较字符串的引用地址,也就是说从地址上面进行比较 “equals()”:即 equals(Object o): Object类中的方法,所以,在...原创 2016-04-16 21:33:26 · 1541 阅读 · 0 评论 -
Java中三种输入的比较
Java程序中,我们经常要用到数据的输入与取出操作, 下面我们就进行对 输入数据方法的比较,区分使用System.in,Scanner和BufferedReader的程序,对各个方法进行输入数据和输出数据演示一、使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in.read...原创 2016-04-19 12:59:30 · 3959 阅读 · 0 评论 -
Java中定义类,对象,函数,变量的方法
类的名字必须由大写字母开头而单词中的其他字母均为小写; 如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage; 如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,在命名类时应尽量选择名词。原创 2016-04-23 18:13:16 · 3639 阅读 · 0 评论 -
Java中异常的处理
说到这里大家应该都对异常有个简单的了解了,下面我们来看下异常的概念1. 异常出现之后,如果没有合理的处理的话,则会让整个程序中断执行。2. 使用try...catch和try...catch...finally可以处理异常,finally将作为异常的统一出口,不管是否有此异常都会执行此语句。3. 一个异常处理中可以同时出现多个catch,但是捕获更粗的异常要放在更细的异常之后,否则程序编译时将出现错误。4. 在异常中最大的类是Throwable,分为两个子类:Exception、Error。5.原创 2016-05-04 07:07:38 · 1069 阅读 · 0 评论 -
Java中IO输入输出流介绍
八、字节数组流 ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。 关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。 ByteArrayOutputStream 此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString()原创 2016-05-21 22:35:28 · 928 阅读 · 0 评论 -
Java中图片文件的复制
1、字节输出流 OutputStream类定义 public abstract class OutputStream extends Object implements Closeable, Flushable 此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到InputStream 类某个接收器要向文件中输出,使用FileOutputStream类 2、字节输入流 定义: public abstract class InputStream extends Obje原创 2016-05-24 13:49:33 · 15163 阅读 · 3 评论 -
7个改变世界的Java项目
原文转载自以下链接,请直接点击查看:http://mp.weixin.qq.com/s?__biz=MzA4ODIwMDUyNw==&mid=2652988005&idx=2&sn=ff87a20a530c2da21cfe32fa9e04386e&scene=23&srcid=0614D8PluXfJJwOoIGqyixzS#rd#userconsent#Java的开源生态系统是强大而健康的,这是我们(Oreilly)创建OSCON Java(Open Source Convention Java)的主转载 2016-06-15 09:52:54 · 552 阅读 · 0 评论 -
Java中变量的使用
1.java中变量的介绍 程序的基本功能是处理数据 程序用变量来接收并表示数据; 程序中必须先定义变量才能使用; 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义->再初始化->然后使用的规则。 变量的使用有一个作用域的问题,作用域是指它的存在范围,只有在这个范围内,程序代码才能访问它。 其次,作用域决定了变量的生命周期。变量的生命周期是指从一个变量被创建并分配内存空间开始,到这个变量被销毁并清除其所占用内存空间的过程。当一个变量被定义时,它的作用域就被原创 2016-08-01 21:25:34 · 1230 阅读 · 0 评论 -
Java中操作符使用的简单介绍
操作符Operator 一般情况下,不用去刻意记住操作符的优先级,当不能确定操作符的执行顺序时,可以使用圆括号来显示指定运算顺序。 1) 赋值操作符: = //int x=0,i=1,j=1; *= //a*=b 等价于 a=a*b /= // a/=b 等价于 a=a/b; %= //a%=b 等价于 a=a%b; += //a+=b 等价于 a=a+b; -= // a-=b 等价于原创 2016-08-01 21:42:09 · 1667 阅读 · 0 评论 -
Java中类型的转换
java中类型的转换分为显式转换和隐式转换 隐式转换:自动转换 基本类型:精度小可以自动转换为精度大的 byte b = 1; int a = b; 引用类型:子类类类型可以自动转换为父类类型 Student s = new Student(); Object o = s; 显式转换:强制类型转换 基本类型:精度大的可以强制类型转换为精度小的,但是可能损失精度 int a = 1; byte b = (byte)a; 引用类型:父类类原创 2016-08-01 21:50:42 · 416 阅读 · 0 评论 -
Java中的流程控制
1. 条件语句 有些程序代码只有满足特定条件的情况下才会被执行,Java语言支持两种条件处理语句:if语句和switch语句 1) if ... else 布尔表达式指的是能返回true或者false的运算式子: 1<2 1==1 1!=2 a. if后面的表达式必须是布尔表达式,而不能为数字类型,例如下面的if(x)是非法的。 int x=0; //编译出错 if(x) { //非法语句原创 2016-08-02 21:54:18 · 710 阅读 · 0 评论 -
Java中的数组的介绍与使用
目标: 1. 数组的创建和使用定义: 数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。创建数组大致包括如下步骤: . 声明一个数组类型的引用变量,简称为数组变量; . 用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值; . 初始化,即为数组的每个元素设置合适的初始值。一. 数组变量的声明;原创 2016-08-06 08:59:31 · 12655 阅读 · 3 评论 -
Java中的对象和类
一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计实现为一个可运行的系统。Java的编程单位是类,对象最后要通过类进行实例化(即“创建”)。 面向对象编程有三个特性: . 封装:java是以类为基础的,所有的属性和方法都是封装在类中的,不像C++在类外还可以定义函数。 . 多态:表面看是多种状态的意思。 . 继承:不容置疑,从父原创 2016-08-06 12:45:15 · 1139 阅读 · 0 评论 -
访问控制权限详解
访问控制权限面向对象的基本思想之一是封装 实现细节 并且公开方法。Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而只向使用者暴露方法,但隐藏实现细节。访问控制分4种级别。访问级别 访问控制修饰符同类同包子类 不同的包公开级别public 受保护 protected 默认 没有访问控制 私有 private成员变量、成员方法和构造方法(构造器)可以处于4个访问级别中的一个 顶层类只可以处于公开或默认访问级别;注意:p原创 2016-08-09 21:31:50 · 1783 阅读 · 0 评论 -
static 修饰符
1. static 变量 成员变量:定义在类里面、方法外面的变量, 分两种: a. 实例变量; b. 静态变量;形式和实例变量类似,在实例变量前面加static关键字; static变量和实例变量的区别: . static变量对于每个类而言在内存中只有一个,能被类的所有实例所共享;实例变量对于每个类的每个实例都有一份,它原创 2016-08-09 22:42:09 · 593 阅读 · 0 评论 -
final修饰符
1. final类 继承关系的弱点是打破封装,子类能够访问父类的方法,而且能以方法覆盖的方式修改实现细节。在以下情况下, 可以考虑把类定义为final类型,使得这个类不能被继承。 . 子类有可能会错误地修改父类的实现细节; . 出于安全,类的实现细节不允许有任何改动; . 在创建对象模型时,确信这个类不会再被扩展; 例如JDK中原创 2016-08-09 22:51:24 · 1605 阅读 · 0 评论 -
增强的for循环(for each)
加强的for循环(Enhanced for)JDK5.0之后出现的新的特性:提供了一种更简洁的遍历方法 语法: for(元素类型 变量名:数组/集合变量名) { //..... } 如果要遍历的对象是集合,那么要求集合要求实现了Iterable接口 其实Collection接口已经继承了Iterable,所以所有Collection接口的实现都可以用在增强的for循环中 还可原创 2016-08-12 22:16:44 · 566 阅读 · 0 评论 -
abstract修饰符和接口
一. abstract修饰符 可用来修饰类和成员方法。 . 用abstract修饰的类表示抽象类,抽象类不能实例化,即不允许创建抽象类本身的实例。没有用abstract修饰的类称为具体类,具体类可以被实例化。 . 用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。 没有abstract修饰的方法称为具体方法,具体方法具有方法体。原创 2016-08-12 22:34:03 · 4454 阅读 · 0 评论 -
List,Set和Map的介绍和使用
一. 集合 数组的长度是固定的,单位的客户是变化的,有老的客户流失,也有新的客户签单为了使程序能方便地存储和操纵数目不固定的一组数据,JDK类库提供了Java集合,所有Java集合类都位于java.util包中与Java数组不同,Java集合中不能存放基本类型数据,而只能存放对象的引用。通常把“集合中的对象的引用”简称为“集合中的对象“Java中集合主要分为三种类型: . Set . HashSet: 按照哈希算法来存取集合中的对象,存取速度比较快LinkedHashSet: HashSet子类,不仅实现原创 2016-08-13 12:22:13 · 1266 阅读 · 0 评论 -
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lan
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at java.lang.Integer.compareTo(Integer.java:52) at java.util.TreeMap.put(TreeMap.java:568) at java.util.TreeSet.add(TreeSet.java:255)原创 2016-08-14 08:07:05 · 18136 阅读 · 0 评论 -
正则表达式介绍与使用
正则表达式:一、概述正则表达式:符合一定规则的表达式。 作用:用于专门操作字符串。 特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。 好处:可以简化对字符串的复杂操作。 弊端:符号定义越多,正则越长,阅读性越差。 具体操作功能:1、匹配:String matches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。2、切割:String split(); 3、替换:String replac原创 2016-08-21 14:15:48 · 4357 阅读 · 0 评论 -
Map的取值方式介绍
values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器iterator()方法。所有可以使用迭代方式取出所有的键,接着根据get(key)方法。获取每一个键对应的值。 keySet():迭代后只能通过get(key)取值 entrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表原创 2016-08-20 11:39:30 · 11601 阅读 · 0 评论 -
retrun语句在try(){}catch(){}中的作用
放在在底层中的结果,首先,我们实现正常的函数,代码如下所示:结果1.1放在try块中预测:出错,分支中也需要一个return1.2放在catch语句块中1.3放到Finally中编译没有报错,运行时报出异常,没有执行catch块,执行Finally块,输出最后返回结果01.4放置到try(){}catch(){}finally{}语句块后面,我们能够看到报出异常,输出infinally,返回值02.1放置到try和catch2.2放置到try和finally2.3放置到try和最底层2.4放置在catch原创 2016-08-18 22:25:45 · 4090 阅读 · 0 评论 -
final,finalize,finally 的区别
final finalize finally 的区别一、性质不同(1)final为关键字;(2)finalize()为方法;(3)finally为为区块标志,用于try语句中;二、作用(1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍);(2)finalize()方法在Object中进行了定 (3)finally{}用于标识代码块,与try{}进行配合,不论try中的代码执行完或没有执行完(这里指有异常),该代码块之中的程原创 2016-08-20 01:54:28 · 1070 阅读 · 0 评论 -
泛型Generic的使用
编译器的泛型兼容性检查: I.泛型类型和原始类型的兼容性 原始类型可以引用一个泛型类型 eg:List list = new ArrayList<String>(); 泛型类型可以引用一个原始类型的对象eg:List<String> list = new ArrayList();II.类型参数不同的泛型类型不能互相引用,不考虑类型参数间的继承性 List<Object> l = new ArrayList<String>(); //错误 List list ; List<Object> oList ;原创 2016-08-21 20:12:33 · 566 阅读 · 0 评论 -
枚举类型(enum)介绍
枚举类型JDK1.5增加了枚举类型,可以使用enum来定义 其中每一个枚举元素都是该枚举类型的一个实例Enum类和enum关键字的区别 1.使用enum关键字定义的枚举类型,实际上就相当于定义了一个类,此类继承了java.lang.Enum类 2.每一个枚举值都是一个枚举类型的实例,它们被预设为public static final,Enum类只有一个受保护的构造方法 protectd Enum(String name,int ordinal) ordinal: 枚举元素的编号实际上对于每一个枚举元素一原创 2016-08-21 20:52:07 · 11958 阅读 · 0 评论 -
反射问题介绍
提到反射可能会使我们联想到光学中的反射概念,在Java中又是另外一个概念: 平时我们照镜子的时候,在镜子后面会有自己的影子,其实java中的反射也是类似的,一个类或者对象通过反射可以获得自身的对象,该对象是一个java.lang.Class 的对象(就像一个镜像文件)。 一个对象或者类获得自身的Class对象的过程称为反射,即主要是指程序可以访问原创 2016-08-21 22:02:14 · 683 阅读 · 0 评论 -
断言的介绍(assert)
断言 假设要进行如下的计算: double y = Math.sqrt(x); 为了让程序健壮,你会先进行测试检查并抛出异常而不让x的值为负数。 if(x<0) throw new IllealArgumentException("x < 0"); 但是,就算是测试结束了,以后实际运行时x的值不会小于0。这种测试代码会一直保留在你的程序中。如果程序中有太多的检查,程序的运行就会慢好多原创 2016-08-21 22:42:37 · 2295 阅读 · 0 评论 -
Java中GUI知识
一. AWT 图形用户界面(Graphics User Interface, GUI) 是用户与程序交互的窗口,它比基于命令行的界面更直观并且更友好。GUI的基本类库位于java.awt包中, 这个包也被称为抽象窗口工具箱(Abstract Window Toolkit, AWT)。AWT按照面向对象的思想来创建GUI,它提供了容器类、众多的组件类和布局管理器类。 AWT构建图形用户界面的机制包括: . 提供了一些容器组件(如Frame和Panel), 用来容纳其他的组件(如按钮Bu原创 2016-08-21 23:14:30 · 1957 阅读 · 0 评论 -
Java中GUI的事件处理
事件处理 GUI布局介绍一. JFC预览 JFC主要是由AWTAbstract Window Toolkit(AWT)、Swing以及Java 2D三者所构成,若将这些一同搭配运用,则用Java程序语言撰写开发成的使用者介面,无论移转、转移到Microsoft WindowsWindows、Mac OS X或Linux等各种不同的作业平台上,都能保有一致性的图像呈现。 前面我们介绍了用AWT创建图形用户界面的基本原理。图形用户界面由各种组件构成,普通组件被添加到容器类组件中, 布局原创 2016-08-22 21:41:58 · 3504 阅读 · 0 评论 -
线程(Thread)及多线程介绍
Threads一. 什么是线程: 进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如每打开一个 IE浏览器窗口,就启动了一个新的进程。线程与进程的主要区别在于:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地 址空间中工作,这些线程可以共享同一块内存和系统资源。比如共享一个对象或者共享已经打开的一个文件 在java虚拟机进程中,执行程序代码的任务是由线程来完成的。每当用java命令启动一个Java虚拟机进程时原创 2016-08-22 21:50:16 · 889 阅读 · 0 评论 -
main方法的各种书写样式
1、main()方法是Java应用程序的入口点,每个Java应用程序都是从main()方法开始运行的。今天在考试中,遇到了main方法的书写方式判断,赶脚没用,但还是实际测试了一测。返回值类型是方法的返回数据的类型,如果返回值类型为void,表示没有返回值。但是在学习到后期,我们可以发现main方法有很多等同意义的写法。参数列表可包含零个或多个参数,参数之间以逗号","分开。方法体中使用return语句返回数据或结束本方法的执行;包含main方法的类又叫主程序类。以上就是众多的main方法。原创 2016-08-23 22:06:54 · 9600 阅读 · 0 评论 -
Java输入输出流
七. Reader and Writer概述InputStream和OutputStream类处理的是字节流,也就是说,数据流中的最小单元为一个字节,它包括8个二进制位。在许多应用场合,Java应用程序需要读写文本文件。在文本文件中存放了采用特定字符编码的字符。为了便于读于各种字符编码的字符,java.io包中提供了Reader/Writer类,它们分别表示字符输入流和字符输出流。 在处理字符流时,最主要的问题是进行字符编码的转换。Java语言采用Unicode字符编码。对于每一个字符,Java虚拟机会为其原创 2016-08-24 21:07:17 · 876 阅读 · 0 评论 -
网络编程技术
网络编程基本概念:1、计算机网络 计算机网络是相互连接的独立自主的计算机的集合,最简单的网络形式由两台计算机组成。2、网络通信IP地址:1)IP网络中每台主机都必须有一个惟一的IP地址;2)IP地址是一个逻辑地址;3)因特网上的IP地址具有全球唯一性;4)32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16。协议:1)为进行网络中的数据交换(通信)而建立的规则、标准或约定;(=语义+语法+规则) ;2)不同层具有各自不同的协议。端口原创 2016-08-25 23:37:33 · 727 阅读 · 0 评论 -
5种字符串拼接方法效率的测试
在实际使用中我们经常要用到字符串的拼接,但是拼接时我们又需要考虑什么样的拼接方式才是最有效率的,下面我们进行验证一下:代码如下,分别设置相同的变量进行连接,使用数字作为连接的介质,让连接的次数和内容相同,用+的方式效率最差,concat由于是内部机制实现,比+的方式好了不少。Join和StringBuffer居中,StringBuffered方法较差StringBuffer sb=new StringBuffer(); sb.append(""); long ts=Syste原创 2016-08-31 23:26:46 · 2358 阅读 · 0 评论 -
java.util 类 Properties
类 Properties Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用put 和putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String原创 2016-09-10 01:04:17 · 695 阅读 · 0 评论 -
Comparable和Comparator接口的联系与区别
Comparable和Comparator接口的联系与区别。这两个接口都是比较器,可以实现排序。首先需要实现的方法不同,Comparable接口是实现compareTo方法,该方法需要传一个参数,与this对象比较。Comparator接口是实现compare方法,该方法需要两个参数。其次,实现的地方不一样,Comparable接口是在TreeSet里放的每一个对象都需要实现的,所以写在pojo类的内部。Comparator接口可以在外部写很多实现类,并把该实现类的对象作为参数传到Tree原创 2016-08-30 23:01:44 · 504 阅读 · 0 评论 -
数组的拷贝
数组的拷贝: 数组的长度一旦确定之后便不能调整,我们可以通过复制数组的内容变通实现改变数组长度。在System类中提供一个辅助的arraycopy方法提供复制数组内容的功能: public static void arraycopy(Object src, int srcPos, Object dest,原创 2016-09-04 00:58:53 · 586 阅读 · 0 评论 -
String与StringBuffer的区别
String与StringBuffer的区别简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。String:在String类中没有用来改变转载 2016-09-05 23:17:55 · 385 阅读 · 0 评论