
Javase
ysk_xh_521
这个作者很懒,什么都没留下…
展开
-
Java简单实现多线程复制文件
#简单点 ##这里,我将所有的类写到一个Java文件中,方便梳理逻辑 ##大概思路: ###复制线程:需要知道我们的线程从哪个位置开始复制,复制结束的位置,以及复制的源文件,需要复制的目标文件。 ###开启多线程复制方法:线程个数,文件长度,源文件,目标文件,以参数形式传入,方法里用一个for循环去开辟新线程。 ###主方法:找到资源文件,调用开启多线程复制方法。import java.i原创 2017-08-16 21:46:51 · 6898 阅读 · 0 评论 -
Java文件遍历操作
Java在某一文件夹下遍历查找某一文件、 直接贴代码。 static boolean result = false; static String filepath = “”; private static void findFile(String path, String filename) throws IOException { File file =原创 2017-08-20 10:13:42 · 9433 阅读 · 0 评论 -
Java中Synchronized(this)和Synchronized(class)的区别
区别 Synchronized(this) 锁住该代码块的对象,等访问该对象的线程执行完,其他线程才可以执行。 Synchronized(xxx.class) 锁住该类,所有访问该类的线程,一次只有一个可以执行。其他 A. 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静原创 2017-08-20 11:43:09 · 12895 阅读 · 0 评论 -
利用socket多线程访问服务器文件
直接上代码ServerMain.javapackage com.ysk.webServer;import java.io.File;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ServerMain { static boolean start =原创 2017-08-21 21:39:53 · 9331 阅读 · 0 评论 -
List,Map,Set用法以及区别总结
List,Set,Map是否继承自Collection接口? 答:List,Set是,Map不是。 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collec原创 2017-08-22 19:43:18 · 8739 阅读 · 0 评论 -
java发送邮件示例
准备好发送邮件的库点击下载示例代码,发送邮箱的线程,填写好所需参数调用即可。package com.ysk.SendEmailDemo;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Properties;import javax.mail.Session;import javax.mail.Tr原创 2017-08-22 20:02:50 · 8980 阅读 · 0 评论 -
Java学习记录–泛型擦除分析
1.问题引出源码: public static void main(String[] args) { List<Integer> a = new ArrayList<Integer>(); List<String> b = new ArrayList<String>(); System.out.println(a.getClass() == b.get转载 2017-08-23 16:04:32 · 8625 阅读 · 0 评论 -
JAVA i=i++的问题
问题引入public class Inc{ public static void main(String args[]){ Inc inc = new Inc(); int i =0; inc.fermin(i); i = i++; System.out原创 2017-08-24 16:26:44 · 8625 阅读 · 0 评论 -
Java中calendar定时任务的小栗子~
前言我们经常会用到定时任务,用Thread显然不合适,这里我们采用calendar实现定时任务代码package com;import java.util.TimerTask;public class NFDFlightDataTimerTask extends TimerTask { @Override public void run() { try {原创 2017-08-29 09:40:52 · 8266 阅读 · 0 评论 -
java线程:callable和Runnable
Runnable Callable 相同点:两者都是接口;(废话) 两者都可用来编写多线程程序; 两者都需要调用Thread.start()启动线程;不同点:两者最大的不同点是:实现Callable接口的任务线程能返回执行结果;而实现Runnable接口的任务线程不能返回结果; Callable接口的call()方法允许抛出异常;而Runnable接口的run()方法的异常只能在内原创 2017-09-15 17:24:58 · 505 阅读 · 0 评论 -
Java泛型中E、T、K、V等的含义
Java泛型中的标记符含义:E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th typesObject跟这些标记符代表的java类型有啥区别呢?Object是所有类的根类,原创 2017-09-18 09:31:19 · 1591 阅读 · 0 评论 -
ArrayList的自动扩充机制
用一道选择题作为本文的开始吧! ArrayList list = new ArrayList(20);中的list扩充几次 A.0 B.1 C.2 D.3 答案:A1、ArrayList的默认初始容量为10,当然也可以自定义指定初始容量,随着动态的向其中添加元素,其容量可能会动态的增加,那么扩容的公式为: 新容量 = 旧容量/2 + 旧容量 + 1 比如:初始容量为4,其容量的每次扩原创 2017-08-24 13:56:19 · 10764 阅读 · 1 评论 -
java8 函数式编程学习
重点:一句话总结两种的关系:面向对象编程是对数据进行抽象;而函数式编程是对行为进行抽象@FunctionalInterface注解1.用此注解注解的接口即为函数式接口,并且接口中只有一个抽象方法,用作Lambda表达式的类型。2.Lambda表达式-&gt;就像是一个匿名函数,将行为像数据那样传递。3.表达式:函数式接口 实体对象=Lambda表达式。Lambda表达式返回的其实就是一...原创 2018-07-24 18:42:53 · 286 阅读 · 0 评论 -
java JVM 测试代码
用于观察javaGC以及年轻代,年老代的情况import java.util.ArrayList;import java.util.List;import org.objectweb.asm.ClassWriter;import org.objectweb.asm.MethodVisitor;import org.objectweb.asm.Opcodes;/* * 继承Cla...原创 2018-07-26 15:12:40 · 857 阅读 · 2 评论 -
垃圾收集器GC与Java编程
Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。 对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为”不可达的”。GC将负责回收所有”不可达”对象的内存空间。 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所转载 2017-08-20 09:26:59 · 9879 阅读 · 0 评论 -
JDK1.5-1.8的一些新特性
//jdk1.5新特性 1)自动装箱与拆箱 int与integer之间的自动转换 2)可变参数,一个方法不受参数数量的限制public void a(int a,int…is); 3)枚举 4)内省,静态导入//jdk1.6新特性 1)Web服务元数据//jdk1.7新特性 1)switch中可以使用字符串了 2)运用List原创 2017-08-19 20:25:59 · 10799 阅读 · 0 评论 -
Java线程学习(一)线程的创建和执行
开门见山在IT圈里,每当我们谈论并发时,必定会说起在一台计算机上同时运行的一系列线程。如果这台电脑上有多个处理器或者是一个多核处理器,那么这时是实实在在的“同时运行”;但是,如果计算机只有一个单核处理器,那么这时的“同时运行”只是表象而已。所有的现代操作系统全部支持任务的并发执行。你可以边听音乐,边上网看新闻,还不耽误首发电子邮件。我们可以说,这种并发是 进程级并发 。在进程内部,我也可以看到有许许原创 2017-08-16 21:52:41 · 2249 阅读 · 0 评论 -
Java并发编程示例(二):获取和设置线程信息
开门见山Thread类包含几个属性,这些属性所表示的信息能帮助我们识别线程、观察其状态、控制其优先级等。这些线程包括如下几种:ID: 该属性表示每个线程的唯一标识; Name: 该属性存储每个线程的名称; Priority: 该属性存储每个Thread对象的优先级。线程优先级分1到10十个级别,1表示最低优先级,10表示最高优先级。并不推荐修改线程的优先级,但是如果确实有这方面的需求,也可以原创 2017-08-16 21:55:02 · 2167 阅读 · 0 评论 -
利用socket进行服务端与客户端传文件
逻辑:1.客户端将需要查找的文件名以流的形式传给服务端2.服务端接受客户端的连接,把流转化为字符串,进行一个目录的遍历,查找是否存在需要的文件,若未找到,则输出未找到,若找到,则将文件转化为流,传给客户端3.客户端准备接受,将服务端传过来的流转化为文件,存储下载。4,至此,完成一个简单的客户端与服务端传输文件的小栗子~ Client.javapackage com.ysk;import原创 2017-08-18 09:17:49 · 3643 阅读 · 0 评论 -
java一个汉字占几个字节问题
测试代码String a = "名"; System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); System.out.println("GBK编码长度:"+a.getBytes("GBK").length); System.out.println("GB2312原创 2017-08-18 09:22:40 · 4089 阅读 · 0 评论 -
java服务器对json数据进行gzip压缩
因为有时候传输的json数据比较多,比较大的时候,我们需要对json数据进行压缩。下面贴出一个使用的例子“`httpServletResponse.setHeader(“Content-Encoding”, “gzip”); httpServletResponse.setHeader(“Transfer-Encoding”, “chunked”); String str=”需要压缩的json原创 2017-08-18 09:57:12 · 16073 阅读 · 0 评论 -
java 类的实例 new一个对象初始化顺序
1.先父类,后子类 2.先属性,后构造方法 3.先静态,后非静态 4.静态属性和静态代码块看书写先后顺序 5.统一类型(非数据类型),按代码书写顺序 父类静态变量,父类静态代码块 子类静态变量,子类静态代码块 父类非静态变量,父类非静态代码块 父类构造函数,子类非静态变量 子类非静态代码块,子类构造函数原创 2017-08-18 10:06:43 · 2624 阅读 · 0 评论 -
java中Object.equals()和==以及字符串.equals()区别
String s1=new String("abc"); System.out.println("abc".hashCode()); System.out.println(s.hashCode()); 此时遇到两个hashCode都为96354。原因 在使用new String 时,String类将字符串的值和hashcode的值都赋给了新的对象。 此时的hashCode被Str原创 2017-08-18 10:28:19 · 2464 阅读 · 0 评论 -
Java并发编程示例(四):可控的线程中断
知其然按照下面所示步骤,实现示例程序。1.创建一个名为FileSearch的类,并且实现Runnable接口。代码如下:public class FileSearch implements Runnable {2.声明两个变量,一个用于需要查找的文件名,一个用于初始化查找的目录;实现类的构造函数,并用构造函数的参数初始化刚刚声明的两个变量。代码如下:private String initPath;p原创 2017-08-18 10:36:36 · 2345 阅读 · 0 评论 -
简单的mysql数据库连接
前言 数据库连接使我们以后项目中必不可少的,而mysql则是当下非常火的一款数据库连接工具。上代码package com.DataBaseUtils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class GetConnection { pr原创 2017-08-18 10:13:04 · 2495 阅读 · 0 评论 -
java序列化与反序列化
Java序列化可以实现将我们的对象转化为字节序列,反序列化则是将字节序列转化为我们的Java对象为什么要有Java序列化和反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了原创 2017-08-19 08:58:27 · 12268 阅读 · 0 评论 -
Java中转换字符串编码
String str = "中国"; byte[] bytes = str.getBytes("UTF-8"); str = new String(bytes, "GBK"); System.out.println(str);当我们需要对一个字符串进行编码格式转换时,需要先用原来的格式解码为字节数组,然后在进行编码,编程我们想要的格式,上方代码为把UT原创 2017-08-19 09:04:28 · 12632 阅读 · 0 评论 -
Java并发编程示例(五):线程休眠与恢复
知其然按照下面所示步骤,来实现本节示例。1.创建一个名为FileClock的类,并且实现Runnable接口。代码如下:public class FileClock implements Runnable {2.实现run()方法。代码如下:@Overridepublic void run() {3.写一个遍历十次的循环,在每次迭代中,创建一个Date对象,并将其打印到控制台。然后,通过TimeUt转载 2017-08-19 12:12:57 · 13338 阅读 · 0 评论 -
Java并发编程示例(六):等待线程执行终止
知其然按照下面所示步骤,完成示例程序。1.创建一个名为DataSourcesLoader的类,并且实现Runnable接口。代码如下:public class DataSourcesLoader implements Runnable {2.实现run()方法,向控制台打印出一条信息以说明开始执行,然后睡眠4秒钟,再向控制台打印一条信息来说明线程执行结束。代码如下:@Overridepublic v转载 2017-08-19 12:14:13 · 11001 阅读 · 0 评论 -
java枚举类简单用法
这里配合lombok进行使用,作为个人记录使用。@ToString@Getter@NoArgsConstructor@AllArgsConstructorpublic enum ResultEnum { SUCCESS(200, &quot;ok&quot;), SERVER_ERROR(500, &quot;服务器错误&quot;); private Integer code;原创 2018-08-08 16:45:35 · 709 阅读 · 0 评论