自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 网络编程(2)---TCP/IP协议

TCP/IP协议是Internet最基本的协议,Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言,TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确的传输到目的地,而IP是给因特网的每一台联网设备规定一个地址。TCP传输模式IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---...

2019-01-26 11:25:40 390

原创 网络编程(1)---计算机网络基本概念

 计算机网络的主要功能和分类计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路链接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。计算机网络的分类由于计算机网络自身的特点,其分类方法有多种。根据不同的分类原则,可以得到不同类型的计算机网络。按网络所覆盖的地理范围的不同,计算机网路可分为局域网(LA...

2019-01-25 10:34:53 471

原创 GUI图形编程(12)---JTable的基本组成

表格:JTable表头   +  内容;表头的表示:String[]               内容的表示:Object[][]1、创建一张table的方式            JTable(Object[][] rowData, Object[] columnNames)            •JTable(Vector rowData, Vector columnName...

2019-01-25 10:01:31 327

原创 GUI图形编程(11)---树形菜单

 package org.lanqiao.menu.demo;import java.awt.Container;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.ImageIcon;import javax.swing.JFrame;impor...

2019-01-24 10:27:58 1088

原创 GUI图形编程(10)---菜单组件

package org.lanqiao.menu.demo;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemLis...

2019-01-24 10:23:12 321

原创 GUI图形编程(9)---验证码

package org.lanqiao.loginui;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.awt.image.RenderedImage;import java.io.FileOutpu...

2019-01-24 10:17:42 687

原创 GUI图形编程(8)---键盘事件

键盘事件  keyListener对键盘都定义了一个唯一的整数,来表示键盘上的某一个键 package org.lanqiao.loginui;import java.awt.Cursor;import java.awt.Image;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;imp...

2019-01-24 10:15:33 222

原创 GUI图形编程(7)---适配器模式

在Swing事件机制所采用的设计模式:适配器模式定义一个接口:在接口中定义所需要的规范(方法) 定义一个抽象类  抽象类实现了接口,抽象类中对接口中的方法都是空实现 在使用的时候,不需要去实现接口(不需要去实现接口中的所有的方法),去继承抽象类适配器,需要那个方法,就重写那个方法在实际开发中,事件的添加需要知道事件源 需要知道该组件需要绑定的是那种事件 一般使用匿名内部类去实现事...

2019-01-24 10:11:53 239

原创 GUI图形编程(6)---事件

事件的概念事件处理是界面处理的基本功能,当用户点击鼠标或者按下键盘时,Swing界面上获得焦点的组件都会收到一个事件通知,这个事件通知是Swing体系内部发出的,界面就会根据收到的事件通知,做出相应的处理,比如弹出对话框或者读取用户输入。Java Swing事件处理模型                                     事件源  ;   注册事件监听器   ;...

2019-01-24 10:02:53 458

原创 GUI图形编程(5)---登陆界面设计

 案例package org.lanqiao.loginui;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swi...

2019-01-23 10:44:47 545

原创 GUI图形编程(4)---布局管理

布局管理:组件在面板中的排列方式布局管理器:LayoutManager   常见的布局:FlowLayout 流式布局 BordLayout 边框布局 GridLayout 网格布局 CardLayout 卡片布局 空布局package org.lanqiao.layout.demo;import java.awt.BorderLayout;i...

2019-01-23 10:37:20 222

原创 GUI图形编程(3)---组件_JComponent

             package org.lanqiao.gui.demo;import java.awt.Toolkit;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;imp...

2019-01-23 10:19:40 349

原创 GUI图形编程(2)---JFrame的使用

容器:JFrame  常用构造方法:JFrame():可以创建一个无标题的窗口。  JFrame(String title):创建一个标题为title的窗口常用方法:getTitle()/setTitle():获取/设置窗口的标题。 getState/setState():获取/设置窗口的最小化、最大化等状态。 isVisible()/setVisible():获取/设置窗...

2019-01-23 10:06:31 315

原创 GUI图形编程(1)---GUI和Swing概述

GUIGraphical User Interface(图形用户接口)就是应用程序提供给用户操作的图形界面,包括窗口、菜单、工具栏和其他各种屏幕元素。图形界面程序可以使用各种各样的图形界面元素,如文本框、按钮、列表框、对话框等,我们将这些图形界面元素称为GUI组件,在这些组建上不能容纳其他的组件。容器其实也是一种组件,是一种比较特殊的组件,他可以用来容纳其他的组件,如窗口、对话框、所有...

2019-01-23 09:51:09 3329

原创 JAVA高级基础(78)---生产者消费者模型

在线程通信中,有一个非常典型的例子:                                     生产者消费者模式一种重要的模型,基于 等待/通知 机制。生产者/消费者 模型描述的是有一块缓冲区作为仓库,生产者可将产品放入仓库,消费者可以从仓库中取出产品,生产者/消费者模型关注的是以下几个点:生产者生产的时候消费者不能消费 消费者消费的时候生产者不能生产 缓冲区空时消费...

2019-01-20 16:33:03 119

原创 JAVA高级基础(77)---互斥锁

互斥锁 JDK1.5的新特性:互斥锁所谓互斥锁,指的是一次最多只能有一个线程持有的锁。在jdk1.5之前,我们通常使用synchronized机制控制多个线程对共享资源的访问。而现在,Lock提供了比synchronized机制更广泛的锁定操作。线程同步:使用ReentrantLock类的lock()和unlock()方法进行同步通信通信:使用ReentrantLock...

2019-01-20 16:22:04 238

原创 JAVA高级基础(76)---线程通信

线程通信线程由运行到阻塞 再到就绪主要用到的方法Object类中的wait()//时线程处于等待状态,如果没有线程来唤醒 那么该线程将一直处于等待状态,直到有线程调用notify /notifyAll来唤醒该线程。 wait(long  min); 也会是线程处于等待状态;线程重新回到就绪状态的条件:一 、等到的时间到  二、 有线程调用notify /notifyAll来唤醒该...

2019-01-20 16:12:43 225 1

原创 JAVA高级基础(75)---死锁问题

死锁问题当多线程执行任务时,存在线程并发的问题时,因为为了保证共享数据的安全,需要在每个线程执行任务时不允许其他线程执行该任务,需要在线程执行时,添加同步,添加锁。如果是单任务,则不会出现。如果在该任务中,需要同步多条语句,且每个同步语句使用的锁不同,那么就有可能出现死锁问题。例子:两个人去就餐,但是只有一双筷子。只有一个人同时拿到两只筷子,才可以吃东西。死锁产生两个线程,分别持有...

2019-01-19 14:37:41 117

原创 JAVA高级基础(74)---线程协作_销售火车票Executor方式

package org.lanqiao.thread.demo;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Execut...

2019-01-19 14:31:16 192

原创 JAVA高级基础(73)---线程协作_销售火车票传统方式

线程的协作:        1 一列火车有100个座位,现在由5个售票窗口来进行销售。package org.lanqiao.thread.demo;//一列火车有100个座位,现在由5个售票窗口来进行销售。//使用传统的线程来实现public class SellerTicket { public static void main(String[] args) { Thr...

2019-01-19 14:29:43 165

原创 JAVA高级基础(72)---Executor执行Callable任务

Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用Future 但又不提供可用的结果,则可以声明 Future<...

2019-01-19 14:25:04 352

原创 JAVA高级基础(71)---Executor执行Runnable任务

Executor框架:支持并发编程的线程池Executors1、ExecutorService    newFixedThreadPool(int initThread)在线程池中,创建固定数目的线程。当执行任务的时候,如果线程池中由空闲线程,则直接使用该线程来执行任务,如果没有空闲线程,则任务处于阻塞状态,等待线程空闲。2、ExecutorService    newCacheT...

2019-01-19 14:21:42 963

原创 JAVA高级基础(70)---并发编程Executor简介及线程池的创建方式

并发编程--Executor我们在传统多线程编程创建线程时常常是创建一些 Runnable 对象,然后创建对应的Thread对象执行它们,但是如果程序需要并发执行大量的任务时,需要为每个任务都创建一个Thread,进行管理,这将会影响程序的执行效率,并且创建线程过多将会使系统负载过重。在Java 5 之后,并发编程引入看一堆新的启动、调度和管理线程的API。Executor框架便是Java...

2018-12-26 16:10:36 230

原创 JAVA高级基础(69)---多线程环境安全使用集合框架API

在当前 jdk 下,即使我们要求集合要保证线程安全,我们也不会在去使用 vector 和 HahsTableCollectionssynchronizedList(List<T> list) synchronizedMap(Map<K,V> m) synchronizedSet(Set<T> s)package org.lanqiao.syn.d...

2018-12-26 15:29:41 150

原创 JAVA高级基础(68)---定时任务

定时任务Timer -> TimerTask注:详细方法请查询APIschedule(TimerTask task,Date firstDate,long period)    执行任务  从什么时间开始执行    每次执行的间隔毫秒数package org.lanqiao.timer.demo;import java.text.ParseException...

2018-12-26 15:21:08 137

原创 JAVA高级基础(67)---线程同步

线程同步两种方式:使用 同步代码块、同步方法    什么情况下需要同步?当多线程并发, 有多段代码同时执行时, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步.如果两段代码是同步的, 那么同一时间只能执行一段, 在一段代码没执行结束之前, 不会执行另外一段代码.   多线程安全问题的原因(也是我们以后判断一个程序是否有线程安全问题的依据)A:是...

2018-12-26 15:09:24 106

原创 JAVA高级基础(66)---线程的生命周期

线程的生命周期线程从创建到运行再到死亡的整个过程。在线程整个生命周期中,线程总共分为了五中状态:新建:线程对象创建 就绪:通过线程的start方法启动线程,线程就处于就绪状态,等待线程调度,获取CPU的执行权。 运行:线程获得CPU的执行权,处于运行中。 阻塞:线程在执行期间,因为某种原因(休眠,礼让,时间到达),暂时失去CPU 的执行权,等待再次获得CPU的执行权。 死亡:当...

2018-12-16 10:37:08 217

原创 JAVA高级基础(65)---线程控制方法及获取系统当前线程

线程名称设置名称:Thread(Runnable target,String name)                 getName();返回线程名称                 getId();获取线程的ID                 setName(String name);设置线程名称在创建线程时,系统会默认为每个线程分配一个名称:Thread-0  Thread...

2018-12-16 10:09:51 642

原创 JAVA高级基础(64)---使用匿名内部类实现多线程

package org.lanqiao.thread.demo;/* * 通过匿名内部类来显示多线程 */public class ThreadDemo { public static void main(String[] args) { new Thread() { @Override public void run() { for(int i ...

2018-12-16 09:56:01 130

原创 JAVA高级基础(63)---创建新的线程

Java程序的运行原理当使用Java命令启动一个程序的时候,JVM启动。就启动了一个进程。 main方法会执行。main方法的运行就是该进程中的一个线程(主线程)。也会启动GC,GC是后台线程(守护线程)。package org.lanqiao.thread.demo;public class ThreadDemo { public static void main(String[...

2018-12-15 11:30:40 217

原创 JAVA高级基础(62)---多线程的介绍

多线程进程:运行中的一个程序,在计算机中的一个运行路径。一个程序只能有一个进程线程:是进程的一个组成单元。在一个进程中至少有一个或一个以上的线程存在Java是最先支持多线程开发的语言之一,Java从一开始就支持了多线程能力,因此Java开发者能常遇到上面描述的问题场景。进程和线程的区别是否占有资源问题 一个进程的创建/撤销所需要的开销远远大于一个线程所需要的开销 进...

2018-12-15 11:22:22 142

原创 JAVA高级基础(61)---代理模式

代理模式静态代理代理的实现完全由程序员自己来实现 改实现只能针对特定的对象来实现代理(就是对被代理对象起到一个增强的作用。)实现步骤定义主业务的接口 实现接口 通过代理来增强主业务方法package org.lanqiao.proxy.demo;//被代理对象public class Customer implements SallTicket { @Overrid...

2018-12-14 11:37:22 129

原创 JAVA高级基础(60)---动态操作数组

使用反射来操作数组   创建数组 判断是否是数组 获取数组的长度 获取数组的类型    Array是动态创建数组和操作数组的一个类package org.lanqiao.reflectarray.demo;import java.lang.reflect.Array;public class ReflectArray { public static void main(...

2018-12-14 10:53:01 137

原创 JAVA高级基础(59)---工厂设计模式

工厂设计模式1.简单工厂构成抽象产品类:定义产品的标准和规范 具体产品类:具体实现产品的标准和规范 简单工厂类:根据需求,创建产品对象优点将产品对象的创建,不在由我们自己来new 而是由工厂来进行创建缺点是工厂和产品之间产生了高度的耦合,工厂的设计不符合类设计的开闭原则:类的扩展性不强package org.lanqiao.simplefactory.demo;...

2018-12-13 11:14:46 166

原创 JAVA高级基础(58)---简单工厂模式

工厂模式简单工厂模式 工厂方法模式 抽象工厂模式简单工厂模式简单工厂模式又称为静态工厂方法模式。从命名上就可以看出这个模式一定很简单。就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。工厂角色:这是本模式的核心,含有一定的业务逻辑和判断逻辑。在jav...

2018-12-13 10:42:05 164

原创 JAVA高级基础(57)---反射+properties

反射在实际开发中的应用properties:属性文件               文件中的内容:以键值对的形式存在                键和值都是以字符串的形式存在clas.properties:username = rootpassword=rootclassName = org.lanqiao.reflect.demo.Studentpackage org...

2018-12-13 10:28:16 273

原创 JAVA高级基础(56)---获取类的私有属性和父类及实现的接口

获取类的信息    获取构造方法     获取public属性     获取public 方法     获取该类的私有的属性和方法:getDeclaredField()/getDeclaredMethod()     获取该类的父类       获取该类实现的接口package org.lanqiao.reflect.demo;import java.io.Serializa...

2018-12-13 10:20:08 374

原创 JAVA高级基础(55)---通过Class对象获取类的构造方法并创建对象及获取普通方法并执行方法

获取类的信息             从访问权限来分                                       private                                       public                    信息的本质                                       属性           ...

2018-12-12 17:21:19 1548

原创 JAVA高级基础(54)---获取类的Class对象及类加载器

类的加载类的加载通过类加载器将一个类加载到内存中并且为每一个类生成一个Class对象类加载器负责将class文件加载到内存中,并为之生成对应的class对象。Class类Class 是final的、无公共的构造方法,由jvm和类加载来进行构造其对象。获取Class对象的方式    每个类只有一个唯一的Class对象通过Class类的静态方法:forName(...

2018-12-12 17:14:37 1380

原创 JAVA高级基础(53)---反射概述

什么是Java的反射?大家都知道,要让Java程序能够运行,那么就得让Java‘类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的时候就已经知道了你所需要的那个类,并且已经被加载了。Java反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期不知道的类。这样的特点就是反射。J...

2018-12-12 17:00:29 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除