简单程序
文章平均质量分 60
一日看尽长安花的幻想
这个作者很懒,什么都没留下…
展开
-
设计模式的六大原则
(以下内容极其后面的关于设计模式的内容均来自《java高手真经(系统架构)》)设计模式六大原则原则含义具体方法开闭原则对外扩展开放 ,对修改关闭多使用抽象类和接口里氏替换原则基类可以被子类替换使用抽象类继承,不使用具体类继承合成复用原则更依赖于抽象,不依赖于具体针对接口编程,不针对实现编程接原创 2018-01-04 19:19:58 · 185 阅读 · 0 评论 -
Date类、Canlendar类和DateFormat类
Date类:用于表示日期和时间Date构造方法:Date():创建表示当前时间的Date对象Date(long date):创建自1970年1月1日0:0:0以来date秒后的时间的对象package study;import java.util.*;public class Example22 {public static void main(String[] arg原创 2017-12-03 21:12:55 · 439 阅读 · 0 评论 -
Math中的random和Random类
random:返回大于等于 0.0 且小于1.0 的伪随机 double 值。java.util包的Random类:在指定的取值氛围内随机的产生数字。构造方法:Random()Random(long seed):使用一个long型的seed种子创造伪随机数生成器。相同的seed生成的相同的序列。package study;import java.util.Rando原创 2017-12-03 20:06:20 · 256 阅读 · 0 评论 -
System和Runtime
System中定义了一些与与系统相关的属性和方法,这些方法都是静态的,所以引用这些属性和方法,直接使用System类调用即可。Runtime表示虚拟机的属性和方法。Runtime是采用单例模式设计,用getRuntime()获得实例对象。Runtime中提供了exec()方法,用于执行dos命令,效果和在命令行窗口中输入dos命令的效果一样。在exec()中的命令语句要放在“”中。例如:e原创 2017-12-03 18:11:44 · 980 阅读 · 0 评论 -
String和StringBuffer
String和StringBuffer的区别:String:是一个类,不包括在8中基本数据类型中,创建对象时可以是:String a="abc",或者利用构造方法:String(),String(char[] value),Strin(String value).字符串是常量,因此在创建之后不能对其内容和常量进行修改,如果需要修改就必须创建新的字符串。StringBuffer:类似于一原创 2017-12-03 12:07:15 · 585 阅读 · 0 评论 -
多线程通信
很重要!!!原创 2017-12-03 00:21:49 · 310 阅读 · 0 评论 -
常用事件分类
窗体事件(WindowEvent)、鼠标事件(MouseEvent)、键盘事件(KeyEvent)、动作事件(ActionEvent)创建事件监听器对象时可以有两种方式:以窗体事件作为例子:实现WindowListener接口和继承WindowAdapter事件适配器以下的例子都是用匿名内部类实现事件处理的窗体事件(WindowEvent)package gui;i原创 2017-12-11 15:03:00 · 2874 阅读 · 0 评论 -
多线程同步
同步:即限制某个资源在同一时间只能被同一个线程访问。线程安全问题:多个线程共同处理共享资源所导致的。解决:多线程处理一个共享资源时,将处理共享资源的代码利用关键字synchronized修饰。同步代码块:synchronized修饰代码块,synchronized(lock){}同步方法:synchronized修饰方法,synchronized 返回值类型 方法名(参数){}原创 2017-12-02 19:38:49 · 258 阅读 · 0 评论 -
关于Thread中的toString的问题
API中的Thread类中有一个toString方法,应该是可以改写输出的内容的,尝试了几遍发现自己不懂实现尝试代码:package study;public class Example01 {public static void main(String[] args) {Thread t=new toStringThread();t.toString();}原创 2017-12-02 15:27:29 · 670 阅读 · 0 评论 -
集合类(HashSet)
单列集合:Collection(接口)双列集合:Map(接口)Collection中的两个重要子接口:List、SetList:元素有序、可重复。线性存储(包括顺序存储和链式存储),可以通过索引的方式来访问集合中指定的数组。三个重要的实现类:ArrayList(顺序存储,适合查找,线性不安全)、LinkedList(链式存储,适合增删)、Vector(线性安全)Set:元素无序、不原创 2017-12-04 10:50:57 · 221 阅读 · 0 评论 -
AWT的布局管理器(只有例子)
五种布局管理器:FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout1、FlowLayoutpackage gui;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;原创 2017-12-12 17:09:26 · 469 阅读 · 0 评论 -
适配器模式(Adapter)
适配器的核心思想:把原有的接口转变成调用者期待的接口,从而使不同接口的类可以一起工作。适配器中包含三个角色:源角色Adaptee:需要适配的目标类或者接口;目标角色Target:所期望得到的接口;适配器角色Adapter:适配器类是本模式的核心,用来把源接口转换成目标接口,显然这一角色不可以是接口,而必须是具体类。适配器也叫做包装原创 2018-01-05 18:16:09 · 228 阅读 · 0 评论 -
结构型模式
结构型模式,讨论的是类和对象的结构,它采用继承机制来组合接口或实现,或者通过组合一些对象,从而实现一些功能。七种结构模式:适配器模式(Adapter)装饰器模式(Decorator)代理模式(Proxy)外观模式(Facade)桥接模式(Bridge)组合模式(Composite)享元模式(Flyweight)原创 2018-01-05 12:18:09 · 130 阅读 · 0 评论 -
static
static关键字,用于修饰类的成员,如成员变量,成员方法以及代码块。在一个java类中,可以 用static关键字来修饰成员变量,该变量被称作静态变量。不管实例化多少对象,静态变量的数据在内存中只有一份,被所有实例所共享,可以使用“类名.变量名”的形式来访问,也可以使用“对象名.变量名”来访问。不可以用于修饰局部变量。在一个静态变量中只能访问用static修饰的成员,原因在于没有被sta原创 2017-11-27 21:36:56 · 208 阅读 · 0 评论 -
<<、>>和>>>的区别
>和>>>的区别>>右移n位,原来是正的左边补0,原来是负的左边补1。>>>右移n位,左边一概补0。原创 2017-11-26 22:23:37 · 1472 阅读 · 0 评论 -
表达式类型自动提升
变量在表达式中进行运算时,也可能发生自动类型转换,这就是表达式类型自动提升。在运算期间,变量会自动提升,而不是转换之后的结果进行提升再向左赋值。public static void main(String args[]){byte b1=127;byte b2=1;byte b3=(byte)(b1+b2);System.out.println("b3="+b3);}}原创 2017-11-26 21:56:40 · 786 阅读 · 0 评论 -
\r和\r\n和\n的区别
2017/11/26\r和\n的区别但是在dos中编译运行的时候,\r表示回到当前行首,并且会覆盖本来有的文字,中文和字符会占2byte,\n和\r\n的运行结果一样原创 2017-11-26 20:47:09 · 382 阅读 · 1 评论 -
Map接口
以下一段是从别的博主(http://www.cnblogs.com/jpwz/p/5680494.html)那边粘贴过来的:【jJava集合中Map接口的使用方法Map接口Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;Map中的键值对以Entry类型的对象实例形式存在;建(key值)不原创 2017-12-05 16:10:03 · 137 阅读 · 0 评论 -
TreeSet
TreeSet是Set的一个实现类,它内部采用自平衡的二叉树来存储元素(左1.自然排序:实现Comparable接口,重写compareTo()方法2.比较器排序:实现Comparator,重写compare()方法,利用其实例对象作为TreeSet的比较器。一、自然排序:package study;import java.util.*;clas原创 2017-12-05 15:14:04 · 195 阅读 · 0 评论 -
io(输入输出流)
字节流:InputStream、OutputStream字符流:Reader、WriterInputStream子类:ByteArrayInputStream、FileInputStream、FilterInputStream(子类:BufferedInputStream、DataInputStream)、PipedInputStream、SequenceInputStream、O原创 2017-12-10 22:16:33 · 254 阅读 · 0 评论 -
线程的两个创建方法
1.继承Thread类2.实现Runnable接口一、继承Thread类说明:继承Thread类,重写run()方法,调用start()方法启动线程。public class Example02 {public static void main(String[] args) {MyThread myThread=new MyThread();myThread.s原创 2017-11-30 13:12:38 · 855 阅读 · 0 评论 -
java中的协变与逆变
转自:http://blog.csdn.net/z69183787/article/details/51598345看下面一段代码Number num = new Integer(1); ArrayList list = new ArrayList(); //type mismatchListextends Number> list = new ArrayList();l转载 2017-12-09 20:57:41 · 148 阅读 · 0 评论 -
JDBC连接SQL Server 2014
源代码:package com.cdd.jdbc;import java.sql.*;public class CreateJoin { Connection conn = null;static { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive原创 2017-07-29 15:14:41 · 993 阅读 · 0 评论 -
实现简单的按钮事件监听
package awt;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Buttom {public static void main(String[] args){Frame frame=new Frame("事件监听");Button bu原创 2017-07-06 13:07:16 · 490 阅读 · 0 评论 -
二维数组行列互换(学习)
package san;public class ArrayRowColumSwap {private static void printArray(int[][] arr){for(int i=0;ifor(int j=0;jSystem.out.print(arr[i][j]+" ");}System.out.println();}}public st原创 2017-07-06 00:20:07 · 2579 阅读 · 0 评论 -
中断循环体(学习)
package rew;public class BreakCyc {public static void main(String[] args){String[] array=new String[]{"白鹭","鸽子","鹦鹉","老鹰"};System.out.println("在遇到第一个老鹰之前,告诉我都有哪些鸟。");System.out.println("原创 2017-07-05 20:56:13 · 203 阅读 · 0 评论 -
foreach
package rew;import java.util.List;import java.util.ArrayList;public class UseForeach {public static void main(String[] args){Listlist=new ArrayList(); //创建集合list.add("abc");list.add("de原创 2017-07-05 20:39:33 · 14478 阅读 · 0 评论 -
while循环
package rew;public class ErgodicArray {public static void main(String[] args){String[] aves=new String[]{"白鹭","黄鹤","丹顶鹤"};int index=0;System.out.println("我的花园有很多鸟,种类包括:");while(index原创 2017-07-05 18:58:14 · 222 阅读 · 0 评论 -
switch语句根据金额计算折扣(学习)
package rew;public class ProducePrice {public static void main(String[] args){float money=1206;float rebate=0;if(money>200){int grade=(int)money/200;switch(grade){case 1:rebate=0原创 2017-07-05 17:57:46 · 1286 阅读 · 0 评论 -
使用sort方法对数组进行排序(split()出现错误的解决)
原本的代码:import java.awt.BorderLayout;import java.awt.EventQueue;import java.util.Arrays;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import原创 2017-07-12 00:39:00 · 1866 阅读 · 0 评论 -
新建有返回值的线程的窗口(修改的窗口有问题不懂解决)
原来的代码:package Thread;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JL原创 2017-07-22 14:49:15 · 266 阅读 · 0 评论 -
简单的模拟时钟
package Thread;import java.awt.BasicStroke;import java.awt.BorderLayout;import java.awt.Color;import java.awt.EventQueue;import java.awt.Font;import java.awt.Graphics;import java.awt原创 2017-07-26 13:50:57 · 1342 阅读 · 0 评论 -
泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的"任意化","任意化"带来的缺点是要做显式的强制类型转换,而这种转换是原创 2017-12-08 21:52:09 · 145 阅读 · 0 评论 -
TreeMap
TreeMap是通过二叉树的原理来保证键的唯一性。package study;import java.util.*;public class Example33 {public static void main(String[] args) {TreeMap tm=new TreeMap(new MyComparator3());tm.put("1","Jack");t原创 2017-12-08 19:49:40 · 160 阅读 · 0 评论 -
多态
定义 :指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)链接:http://blog.csdn.net/jian_yun_rui/article/details/52937791转载 2017-11-28 22:34:27 · 135 阅读 · 0 评论 -
匿名内部类
只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现package study;interface Animal_4{void shout();}public class Example19 {public static void main(String[] args) {animalShout(new Animal_4(){public v原创 2017-11-28 22:05:20 · 125 阅读 · 0 评论 -
抽象类要点
抽象方法:不包含方法体,必须用abstract修饰。抽象类:包含抽象方法,必须用abstract修饰。定义:当一个类包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类。注意:包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽方法,只需要只用abstract关键字修饰即可。抽象方法的写法为:abstract void sh原创 2017-11-28 20:50:24 · 244 阅读 · 0 评论 -
super关键字要点
用于访问父类的成员:super.成员变量super.成员方法([参数1],[参数2]...)使用supe关键字调用父类的构造方法:super([参数1],[参数2]...)注意:在子类的构造方法中一定会调用父类的某个构造方法,这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法(当父类定义原创 2017-11-28 20:12:40 · 309 阅读 · 0 评论 -
简单的公历万年历
(可以选择上下月,年份月份分别选择,然后进行显示) 源代码: package Thread;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEv原创 2017-07-27 11:10:16 · 404 阅读 · 0 评论 -
使用冒泡排序法
package san;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.JButton;import javax.swing.转载 2017-07-11 16:21:23 · 233 阅读 · 0 评论