自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 使用位图算法来优化签到历史存储空间占用

前言实际开发中有这样的场景,用户每日签到,可获取相对应的积分赠送,如果连续签到,则可获得额外的积分赠送。本文主要讲解使用位图算法来优化签到历史记录的空间占用。当然如果业务中仅仅是获取连续签到的最大天数,使用一个计数器即可记录。需求:1.记录一年的签到历史2.获取某月的签到历史3.获取过去几天连续签到的最大天数位图算法实现思路一天的签到状态只有两...

2019-06-27 15:30:00 431

转载 PHP实现图片(文件)上传

这几天整理做过的php项目,感觉这个经常会用到,传上来共享一下咯首先,前端界面1、表单的首行需要加上enctype="multipart/form-data",需要上传的图片必须设置 type="file"表示选择文件<form id="img_form" method="post" class="form-horizontal" role="form" enctype="mu...

2019-06-27 15:29:00 488

转载 spring容器干掉if-else

场景说明最近新做一个项目,需要对不同店铺的商品做不同处理。例如storeA需要进行handleA操作,storeB需要进行handleB操作,如此类推大家很容易会想到下面的实现方法public void handle(String storeName) { //店铺A做操作handleA处理 if(storeName.equals("storeA")) {...

2019-06-27 15:28:00 200

转载 数据管理工具Flux、Redux、Vuex的区别

目录为什么要进行数据管理?怎么有效地进行数据管理?数据管理工具1. Flux2. Redux3. Vuex使用数据管理工具的场景相关资料主要讲解一下前端为什么需要进行数据管理,有效的数据管理应该是什么样子的,最后挑选Flux、Redux、Vuex进行对比讲解。为什么要进行数据管理?组件式开发的核心...

2019-06-27 15:28:00 444

转载 Spring Boot从入门到实战:集成AOPLog来记录接口访问日志

日志是一个Web项目中必不可少的部分,借助它我们可以做许多事情,比如问题排查、访问统计、监控告警等。一般通过引入slf4j的一些实现框架来做日志功能,如log4j,logback,log4j2,其性能也是依次增强。在springboot中,默认使用的框架是logback。我们经常需要在方法开头或结尾加日志记录传入参数或返回结果,以此来复现当时的请求情况。但是手动添加日志,不仅繁琐重复,也...

2019-06-27 15:27:00 328

转载 DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。...

UDP编程:DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中。UDP也需要现有Server端,然后再有Client端。两端都是DatagramPacket(相当于电话的概念),需要NEW两个DatagramP...

2019-04-21 10:43:00 166

转载 网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。...

网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。Ip:具有全球唯一性,相对于internet,IP为逻辑地址。端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。计算机通信实际上的主机之间的进程通信,进程的通信就需要在端口进行联系。192.168.0.23:21协议:为...

2019-04-21 10:43:00 721

转载 字节输入流:io包中的InputStream为所有字节输入流的父类。

字节输入流:io包中的InputStream为所有字节输入流的父类。Int read();读入一个字节(每次一个);可先使用new byte[]=数组,调用read(byte[] b)read (byte[])返回值可以表示有效数;read (byte[])返回值为-1表示结束。字节输出流:io包中的OutputStream位所有字节输入流的父类。Write和...

2019-04-21 10:42:00 706

转载 class ObjectOutputStream也是过滤流,使节点流直接获得输出对象。

class ObjectOutputStream也是过滤流,使节点流直接获得输出对象。最有用的方法:WriteObject(Object b)用流传输对象称为对象的序列化,但并不使所有的对象都可以进行序列化的。只有在实现类时必须实现一个接口:IO包下的Serializable(可序列化的)。此接口没有任何的方法,这样的接口称为标记接口。Class Student implem...

2019-04-21 10:42:00 223

转载 ListFiles():返回Files类型数组,可以用getName()来访问到文件名。

List():显示文件的名(相对路径)ListFiles():返回Files类型数组,可以用getName()来访问到文件名。使用isDirectory()和isFile()来判断究竟是文件还是目录。练习:写一个javaTest程序,列出所有目录下的*.java文件,把子目录下的JAVA文件也打印出来。使用I/O流访问file中的内容。JVM与外界通过...

2019-04-21 10:41:00 445

转载 同样:Hashtable较HashMap也是如此。

练习:① 存车位的停开车的次序输出问题;② 写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要忘了写o.notify()。补充说明:通过Synchronize...

2019-04-21 10:40:00 77

转载 Module 10:I/O流(java如何实现与外界数据的交流)

Module 10:I/O流(java如何实现与外界数据的交流)Input/Output:指跨越出了JVM的边界,与外界数据的源头或者目标数据源进行数据交换。 输出 输入 注意:输入/输出是针对JVM而言。File类(java.io.*)可表示一个文件,也有可能...

2019-04-21 10:40:00 87

转载 线程因为未拿到锁标记而发生的阻塞不同于前面五个基本状态中的阻塞,称为锁池。...

线程因为未拿到锁标记而发生的阻塞不同于前面五个基本状态中的阻塞,称为锁池。每个对象都有自己的一个锁池的空间,用于放置等待运行的线程。这些线程中哪个线程拿到锁标记由系统决定。锁标记如果过多,就会出现线程等待其他线程释放锁标记,而又都不释放自己的锁标记供其他线程运行的状况。就是死锁。死锁的问题通过线程间的通信的方式进行解决。线程间通信机制实际上也就是协调机制。线...

2019-04-21 10:39:00 281

转载 释放锁标记只有在Synchronized代码结束或者调用wait()。

释放锁标记只有在Synchronized代码结束或者调用wait()。注意锁标记是自己不会自动释放,必须有通知。注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密。WHILE会放置程序饶过判断条件而造成越界。补充知识:suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记)。恢复状态的时候用resume()。Stop()指释放全部。...

2019-04-21 10:39:00 157

转载 程序的跨平台性:除了能够运行,还必须保证运行的结果。

第二种方式:Class MyThread implements Runnable{ Public void run(){ Runnable target=new MyThread(); Thread t3=new Thread(target); Thread.start();//启动线程}}P384:通过接口实现继承练习:写两个线程:...

2019-04-21 10:38:00 206

转载 多线程的并发一般不是程序员决定,而是由容器决定。

下午:程序员需要关注的线程同步和互斥的问题。多线程的并发一般不是程序员决定,而是由容器决定。多线程出现故障的原因:两个线程同时访问一个数据资源(临界资源),形成数据发生不一致和不完整。数据的不一致往往是因为一个线程中的两个关联的操作只完成了一步。避免以上的问题可采用对数据进行加锁的方法每个对象除了属性和方法,都有一个monitor(互斥锁标记),用来将这...

2019-04-21 10:38:00 127

转载 任务并发执行是一个宏观概念,微观上是串行的。

多线程进程:任务任务并发执行是一个宏观概念,微观上是串行的。进程的调度是有OS负责的(有的系统为独占式,有的系统为共享式,根据重要性,进程有优先级)。由OS将时间分为若干个时间片。JAVA在语言级支持多线程。分配时间的仍然是OS。参看P377线程由两种实现方式:第一种方式:class MyThread extends Thread{...

2019-04-21 10:37:00 3003

转载 AWT是Java最早出现的图形界面,但很快就被Swing所取代。

Module 11 SwingAWT是Java最早出现的图形界面,但很快就被Swing所取代。Swing才是一种真正的图形开发。AWT在不同平台所出现的界面可能有所不同:因为每个OS都有自己的UI组件库,java调用不同系统的UI。注意AWT为重量级组件,相当消耗资源,且不同系统的组件可能不同。因为这个问题使得AWT开发的软件难以作到跨平台。更为要命的是:不同OS的...

2019-04-21 10:36:00 467

转载 Swing与AWT在事件模型处理上是一致的。

Swing与AWT在事件模型处理上是一致的。Jframe实际上是一堆窗体的叠加。Swing比AWT更加复杂且灵活。在JDK1.4中,给JFRAME添加Button不可用jf.add(b)。而是使用jf.getContentPane().add(b)。content是先申请面板。不过在JDK1.5中可以使用add.。Jpanel支持双缓冲技术。在Jbutton中可以...

2019-04-21 10:36:00 196

转载 我们在学习JDBC的时候会过度到J2EE。

我们在学习JDBC的时候会过度到J2EE。在Swing的组件中,基本上都是在AWT组件的名称前面加“J”。一般情况下,除了Choise等组件:import javax.swing.*;好要加上:import java.awt.*以及import java.awt.event.*。Swing与AWT的最大区别是Swing为JAVA自身的组件。已经不是对等实体,与底层的...

2019-04-21 10:36:00 67

转载 在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing()。...

事件模式的实现步骤:开发事件对象(事件发送者)——接口——接口实现类——设置监听对象一定要理解透彻Gril.java程序。重点:学会处理对一个事件源有多个事件的监听器(在发送消息时监听器收到消息的排名不分先后)。事件监听的响应顺序是不分先后的,不是谁先注册谁就先响应。事件监听由两个部分组成(接口和接口的实现类)。事件源 事件对象 ...

2019-04-21 10:35:00 730

转载 Canvas组件:画布,可以实现动画操作。

Module 10Canvas组件:画布,可以实现动画操作。TextArea:文本域。在单行文本域中回车会激发ActionEvent。用CheckBoxGroup实现单选框功能。Java中,单选框和复选框都是使用CheckBox实现。菜单:new MenuBar(),MenuBar表示菜单条。菜单中的每一项为MenuItem,一般级联菜单不应该超过三级。...

2019-04-21 10:35:00 165

转载 经验之谈:Swing的开发工作会非常的累,而且这项技术正在走向没落。避免从事有这种特征的工作。...

经验之谈:Swing的开发工作会非常的累,而且这项技术正在走向没落。避免从事有这种特征的工作。AWT也即将被取代。Module8—Module11所使用的技术都将被JSF技术所取代。JSF是服务器端的Swing:目前技术已经成熟,但是开发环境(工具)还不成熟。Module12的Applet技术也将被WebStart所取代。Module9为重点,所谓事件模型是指观...

2019-04-21 10:34:00 132

转载 事件模型指的是对象之间进行通信的设计模式。

五种布局管理器:P206:Flow Layout(流式布局):按照组件添加到容器中的顺序,顺序排放组件位置。默认为水平排列,如果越界那么会向下排列。排列的位置随着容器大小的改变而改变。Panel默认的布局管理器为Flow Layout。Border Layout:会将容器非常五个区域:东西南北中。语句:Button b1=new Botton(“north”);...

2019-04-21 10:34:00 212

转载 在java.util中有EventListener接口:所有事件监听者都要实现这个接口。

在java.util中有EventListener接口:所有事件监听者都要实现这个接口。java.util中有EventObject类:所有的事件都为其子类。事件范例在\CoreJava\Girl.java文件中。(文件已加注释) 注意:接口因对不同的事件监听器对其处理可能不同,所以只能建立监听...

2019-04-21 10:34:00 996

转载 重点掌握集合的四种操作:增加、删除、遍历、排序。

使用HashMap(),如果使用自定义类,一定要覆盖HashCode()和equals()。重点掌握集合的四种操作:增加、删除、遍历、排序。Module8—12利用两天的时间完成。Module8:图形界面Module9:事件模型(在本部分最重要)Module10:AWTModule11:SwingModule12:Applet(这个技术基本已经被淘...

2019-04-21 10:33:00 189

转载 当我们用自定义的类对象作为key时,我们必须在程序中覆盖HashCode()和equals()。...

Key值既然可以作为对象,那么也可以用一个自定义的类。比如:m.put(new sutdent(“Liucy”,30),”boss”)如果没有语句来判定Student类对象是否相同,则会全部打印出来。当我们用自定义的类对象作为key时,我们必须在程序中覆盖HashCode()和equals()。注:HashMap底层也是用数组,HashSet底层实际上也是Ha...

2019-04-21 10:30:00 277

转载 SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。

SortedSet可自动为元素排序。SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。练习:自定义类用TreeSet排序。与HashSet不同,TreeSet并不需要实现HashCode()和equals()。只要实现compareable和compareTo()接可以实现过滤功能。(注:HashSet不调用Com...

2019-04-21 10:30:00 195

转载 集合对象存放的是一系列对象的引用。

添加知识点:集合对象存放的是一系列对象的引用。例:Student SAl.add(s);s.setName(“lucy”);Student s2=(Student)(al.get(o1));可知s2也是s。转载于:https://www.cnblogs.com/borter/p/10744057.html...

2019-04-21 10:29:00 154

转载 遍历一个Set的方法只有一个:迭代器(interator)。

Set-HashSet实现类:遍历一个Set的方法只有一个:迭代器(interator)。HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复。在Object中除了有final(),toString(),equals(),还有hashCode()。HashSet底层用的也是数组。当向数组中利用add(Object o)添加...

2019-04-21 10:28:00 649

转载 集合的最大缺点是无法进行类型判定(这个缺点在JAVA1.5中已经解决),这样就可能出现因为类型不同而出现类型错误。...

集合的最大缺点是无法进行类型判定(这个缺点在JAVA1.5中已经解决),这样就可能出现因为类型不同而出现类型错误。解决的方法是添加类型的判断。 LinkedList接口(在代码的使用过程中和ArrayList没有什么区别)ArrayList底层是object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。而在LinkedList的底...

2019-04-21 10:21:00 155

转载 List接口的实现类(Vector)(与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多。)...

LinkedList提供以下方法:(ArrayList无此类方法)addFirst(); removeFirst(); addLast(); removeLast();在堆栈中,push为入栈操作,pop为出栈操作。Push用addFirst();pop用removeFirst(),实现后进先出。用isEmpty()--其父类的方法,来判...

2019-04-21 10:21:00 124

转载 集合(从本部分开始涉及API)

集合(从本部分开始涉及API)集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象。数组就是一种对象。(练习:如何编写一个数组程序,并进行遍历。)java.util.*定义了一系列的接口和类,告诉我们用什么类NEW出一个对象,可以进行超越数组的操作。(注:JAVA1.5对JAVA1.4的最大改进就是增加了对范型的支持)集合框架接口的分类:(分c...

2019-04-21 10:20:00 77

转载 成员内部类不可以有静态属性。(为什么?)

成员内部类不可以有静态属性。(为什么?)如果在外部类的外部访问内部类,使用out.inner.建立内部类对象时应注意:在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)而在外部类的外部,要生成(new)一个内部类对象,需要首先建立一个外部类对象(外部类可用),然后在生成一个内部类对象。...

2019-04-21 10:20:00 458

转载 List接口:(介绍其下的两个实现类:ArrayList和LinkedList)

以下介绍接口:List接口:(介绍其下的两个实现类:ArrayList和LinkedList)ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组。① 底层:指存储格式。说明ArrayList对象都是存在于数组中。注:数组和集合都是从下标0开始。ArrayList有一个add(Object o)方法用于插入数组。Array...

2019-04-21 10:20:00 258

转载 内部类是指在一个外部类的内部再定义一个类。

内部类:(注:所有使用内部类的地方都可以不用内部类,使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用PROTECTED和PRIVATE修饰。(而外部类不可以:外部类只能使用PUBLIC和DEFAULT)。内部类的分类:成员内部类、...

2019-04-21 10:19:00 532

转载 程序员自己编写的类和JDK类是一种合作关系。

封装类:JAVA为每一个简单数据类型提供了一个封装类,使每个简单数据类型可以被Object来装载。除了int和char,其余类型首字母大写即成封装类。转换字符的方式:int I=10;String s=I+” ”;String s1=String.valueOf(i);Int I=10;Interger I_class=new integer(I);...

2019-04-21 10:19:00 104

转载 当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。

以下介绍的三种方法属于Object:(1) finalize方法:当一个对象被垃圾回收的时候调用的方法。(2) toString():是利用字符串来表示对象。当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。可以通过子类作为一个toString()来覆盖父类的toString()。以取得我们想得到的表现形式,即当我们想利用一个自定义的...

2019-04-21 10:18:00 123

转载 接口和多态都为JAVA技术的核心。

类必须实现接口中的方法,否则其为一抽象类。实现中接口和类相同。接口中可不写public,但在子类中实现接口的过程中public不可省。(如果剩去public则在编译的时候提示出错:对象无法从接口中实现方法。)注:① 一个类除继承另外一个类,还可以实现接口;class IAImpl extends java.util.Arrylist implemen...

2019-04-21 10:17:00 90

转载 JAVA中有一个特殊的类: Object。它是JAVA体系中所有类的父类(直接父类或者间接父类)。...

接口往往被我们定义成一类XX的东西。接口实际上是定义一个规范、标准。① 通过接口可以实现不同层次、不同体系对象的共同属性;通过接口实现write once as anywhere.以JAVA数据库连接为例子:JDBC制定标准;数据厂商实现标准;用户使用标准。接口通常用来屏蔽底层的差异。②接口也因为上述原因被用来保持架构的稳定性。此类中...

2019-04-21 10:17:00 968

空空如也

空空如也

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

TA关注的人

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