JAVASE基础
文章平均质量分 64
qiudonga
这个作者很懒,什么都没留下…
展开
-
Stream流操作
中间操作符流方法含义示例filter用于通过设置的条件过滤出元素List list = Arrays.asList(“abc”,"",“bc”,“efg”,“abcd”,“jkl”); List filterList = list.stream().filter(str -> str.contains(“f”)).collect(Collectors.toList());distinct返回一个元素各异的流List res = list.stream().dist原创 2021-04-29 00:35:24 · 268 阅读 · 0 评论 -
JAVA---TCP网络通信
JAVA—TCP网络通信TCP通信的客户端,向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据表示客户端的类:java.net.Socket,此类实现了客户端套接字,套接字包含了IP地址和端口号的网络单位构造方法: Socket(String host, int port):参数1:服务器主机名称/服务器ip地址;参数2:服务器的端口号。成员方法:getOutputStrea...原创 2019-08-31 10:52:06 · 279 阅读 · 0 评论 -
JAVA---缓冲流(字节缓冲流和字符缓冲流)
JAVA—缓冲流(字节缓冲流和字符缓冲流)字节缓冲输出流: BufferedOutputStream方法:BufferedOutputStream(OutputStream out):参数:字节输出流BufferedOutputStream(OutputStream out , int size):参数1:字节输出流;参数2:指定缓冲流内部缓冲区的大小,不指定就是默认 //创建Outpu...原创 2019-08-29 20:03:55 · 485 阅读 · 1 评论 -
JAVA---Properties集合:唯一一个和IO流相结合的集合
JAVA—Properties集合:唯一一个和IO流相结合的集合Properties集合是一个双列集合,key和value默认都是字符串(键不可重复,无序)方法:setProperty():往集合中添加键值对prop.stringPropertyNames():返回集合中所有键的集合getProperty:根据键获取值Properties prop = new Properties()...原创 2019-08-28 22:29:43 · 353 阅读 · 0 评论 -
JAVA---字符流(字符输入流Reader和字符输出流Writer)
JAVA—字符流(字符输入流Reader和字符输出流Writer)文件字符输入流FileReader:使用步骤:1.创建FileReader对象,构造方法中绑定要读取的数据源(String类型的路径或者File对象)2.使用FileReader的方法read读取文件,返回字符3.释放资源,关流一次读取一个字符FileReader fr = new FileReader("D:\\Id...原创 2019-08-28 21:30:37 · 387 阅读 · 0 评论 -
JAVA---字节流OutputStream(输出流)和InputStream(输入流)
JAVA—字节流OutputStream(输出流)和InputStream(输入流)文件字节输出流FileOutputStream使用步骤:1.创建FileOutputStream对象,构造方法中传递写入数据的目的地(字符串或者File对象)2.调用FileOutputStream对象中的write,把数据写到文件中3.关流(释放资源)例:一次写一个字节到文件中FileOutputS...原创 2019-08-27 21:43:42 · 490 阅读 · 0 评论 -
JAVA---FileFilter过滤器和FilenameFilter过滤器
JAVA—过滤器FileFilter过滤器:用于抽象路径名(File对象)的过滤器重写抽象方法accept(File pathname):参数:使用listFiles方法遍历目录得到的每一个文件对象,重写的方法体定义过滤的规则。如下所例:搜索D:\IdeaProjects\javaSE\IO流 目录下的.java文件import java.io.File;import java.io....原创 2019-08-26 20:13:44 · 306 阅读 · 0 评论 -
JAVA---Thread(线程)类的常用方法
JAVA—Thread(线程)类的常用方法获取线程名称的方法:1. getName():获取当前正在执行的线程名字,卸载run方法里public void run() { String name = getName(); System.out.println("我是子线程,我的名字是:" + name); //输出 Thread-0 }2.先获...原创 2019-08-22 21:43:33 · 128 阅读 · 0 评论 -
JAVA---局部变量和成员变量区别?
局部变量和成员变量区别?1.定义的位置不一样:局部变量:定义在方法内成员变量:定义在方法外部,类中2.作用范围不一样局部变量只有在方法中可以用,在方法外就不能用了成员变量整个全类都能用3.默认值不一样局部变量没有默认值。想要使用必须进行初始化成员变量如果没有赋值,会有默认值4.内存位置不一样局部变量:位于堆内存成员变量:位于栈内存5.生命周期不一样局部变量:随着方法进栈...原创 2019-08-17 14:49:21 · 180 阅读 · 0 评论 -
final关键字
final关键字:1.可以用来修饰一个类,这个被修饰的类不能有子类2.可以用来修饰一个方法,这个方法就是最终方法,也就是这个方法不能被覆盖重写(abstract关键字和final关键字不能被同时使用,因为abstract修饰的方法要被覆盖重写,而final修饰的方法不能被覆盖重写3.可以用来修饰一个局部变量,被修饰的局部变量就不可变;对于基本数据类型来说,不可变就是数据值不可变,对于引用类型...原创 2019-08-12 21:40:40 · 85 阅读 · 0 评论 -
多态中成员变量的使用特点
多态中成员变量的使用特点:访问成员变量的两种方式(不仅是多态中,继承也遵循这个规则)1.直接通过对象名称访问成员变量,看等号左边是谁,优先用谁,没有则向上找;例如 父类:public class Fu { int num = 10;} 子类:public class Zi extends Fu{ int num = 20;} main方法:等号左边是父类...原创 2019-08-12 21:12:43 · 539 阅读 · 0 评论 -
JAVA--转换流(OutputStreamWriter和InputStreamReader)
JAVA–转换流(OutputStreamWriter和InputStreamReader)写的转换流:OutputStreamWriter (OutputStream out):参数:字节输出流OutputStreamWriter (OutputStream out , Charset cs):参数1:字节输出流;参数2:指定的编码表名称。不区分大小写(IDEA不指定默认用utf-8)/...原创 2019-08-30 11:33:09 · 543 阅读 · 0 评论 -
JAVA---对象的序列化流和反序列化流
JAVA—对象的序列化流和反序列化流以流的形式(ObjectOutputStream)将对象写入到硬盘中叫对象的序列化,将对象从硬盘中方读取出来(ObjectInputStream)叫对象的反序列化Person对象:想要进行对象的序列化和反序列化,需要实现Serializable接口public class Person implements Serializable { //想要进...原创 2019-08-30 17:02:21 · 142 阅读 · 0 评论 -
JAVA---Lock接口实现类ReentrantLock的五种锁,读写锁,volatile关键字
JAVA—Lock接口实现类ReentrantLock的五种锁,读写锁,volatile关键字Lock接口实现类ReentrantLock的五种锁//有公平锁 非公平锁 默认创建的是非公平锁Lock l = new ReentrantLock();//拿不到锁就一直等l.lock();//拿到锁返回true 没拿到锁返回false,不再等待l.tryLock();//拿到锁返回...原创 2019-09-10 20:27:49 · 583 阅读 · 1 评论 -
JAVA--使用Condition条件和阻塞队列ArrayBlockingQueue实现多个消费者和多个生产者
JAVA–使用Condition条件和阻塞队列ArrayBlockingQueue实现多个消费者和多个生产者使用Condition条件实现多个消费者和多个生产者ProductFactory类:public class ProductFactory { private List<String> list = new ArrayList<>(); priv...原创 2019-09-10 20:20:08 · 614 阅读 · 2 评论 -
JAVA---手写HashMap
JAVA—手写HashMapMap接口public interface Map { void put(Object key,Object value); Object get(Object key); int size(); boolean isEmpty(); //定义内部接口 interface Entry{ Obj...原创 2019-09-09 21:54:11 · 560 阅读 · 2 评论 -
JAVA---手写ArrayList
JAVA—手写ArrayListList接口public interface List { // 返回线性表的大小,即数据元素的个数。 public int size(); // 返回线性表中序号为 i 的数据元素 public Object get(int i); // 如果线性表为空返回 true,否则返回 false。 public bo...原创 2019-09-09 21:47:40 · 194 阅读 · 1 评论 -
JAVA---UDP网络通信
JAVA—UDP网络通信客户端:public class UDPClient { public static void main(String[] args) throws Exception{ //UDP客户端发送数据 String data = "英雄赤胆一腔热血撒不尽"; //创建发送数据包的对象 发送的信息使用系统提供的某一端口...原创 2019-09-06 17:05:43 · 143 阅读 · 0 评论 -
单例设计模式
单例设计模式:保证类在内存中只有一个对象饿汉式 Singleton s1=Singleton.getInstance(); Singleton s2=Singleton.getInstance();class Singleton{ //1.私有构造方法,其他类不能访问该构造方法了 private Singleton() {} //创建本类对象 private static S...原创 2019-04-01 19:50:40 · 82 阅读 · 0 评论 -
JAVA---反射加图解--框架的灵魂
JAVA—反射–框架的灵魂什么是反射?将类的各个组成部分,封装为其他的对象;如下图通过反射获取成员变量:getFields():获取所有Public修饰的成员变量//获取Person类的Class对象Class<Person> personClass = Person.class;Field[] fields = personClass.getFields();for...原创 2019-09-03 20:57:03 · 402 阅读 · 0 评论 -
JAVA---TCP文件上传以及优化
JAVA—TCP文件上传以及优化分析: /* * 1.客户端使用本地字节输入流,读取要上传的文件 * 2.客户端使用网络字节输出流,把读取到的文件上传到服务器 * 3.服务器使用网络字节输入流,读取客户端传来的文件 * 4.服务器使用本地字节输出流,把上传的文件保存到服务器硬盘上 * 5.服务器使用网络字节输出流,给客户端发送“上传成功” * 6...原创 2019-09-01 16:25:06 · 271 阅读 · 0 评论 -
HashMap源码解释(JDK1.7)
HashMap源码解释HashMapstatic final int MAXIMUM_CAPACITY = 1 << 30; //2的30次方static final float DEFAULT_LOAD_FACTOR = 0.75f; //装填因子--》数组的承重/数组的长度static final int DEFAULT_INITIAL_CAPACITY = 16; ...原创 2019-08-31 15:14:47 · 123 阅读 · 0 评论 -
JAVA---数组选择排序加图解
JAVA—数组选择排序选择排序解释(解释来源于度娘):选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 (这里以选出最小为例)选择排序图解:代码实现:public static void main(String[] a...原创 2019-08-12 19:56:34 · 140 阅读 · 0 评论 -
JAVA---数组冒泡排序加图解(进行优化的冒泡排序)
JAVA—数组冒泡排序冒泡排序算法的原理如下(原理来源于度娘):比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。图解冒泡排序:代码实现public static...原创 2019-08-12 19:19:13 · 209 阅读 · 0 评论 -
JAVA---File类常用方法(文件的获取,创建,删除)
JAVA—File类常用方法java把电脑中的文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作File的静态成员变量:pathSeparator属性和pathSeparatorChar属性 :路径分隔符 windows:逗号; Linnx:冒号: String ps = File.pathSeparator;System.out.println(ps)...原创 2019-08-24 15:57:30 · 1280 阅读 · 4 评论 -
JAVA小游戏 --------模拟斗地主发牌
模拟斗地主,不多说,直接上代码,里面有详细的注释package com.heima.test;import java.util.ArrayList;import java.util.Collections;public class Test2 { public static void main(String[] args) { /* * 模拟斗地主洗牌和发牌 * 分...原创 2019-03-17 19:35:24 · 179 阅读 · 0 评论 -
Collection集合基本操作(集合添加删除等)
Collection c=new ArrayList&lt;&gt;(); //父类引用指向子类对象 c.add("abc"); c.add(true); c.add(100); c.add(new Student("张三",23)); //添加 System.out.println(c); System.out.println(c.size()); //原创 2019-03-12 22:32:19 · 2452 阅读 · 0 评论 -
Collections集合的基本操作
Collections类中的方法都是静态的,所以直接类名.调用就可以了 ArrayList<String> al=new ArrayList<>(); al.add("a"); al.add("c"); al.add("d"); al.add("e"); al.add("f"); Collections.sort(al);原创 2019-03-17 18:56:22 · 250 阅读 · 0 评论 -
Map集合基本操作及遍历
Map&amp;lt;String, Integer&amp;gt; map=new HashMap&amp;lt;&amp;gt;(); //Map是接口,父类引用指向子类对象 map.put(&quot;张三&quot;, 23); map.put(&quot;李四&quot;, 24); map.put(&quot;王五&a原创 2019-03-16 15:07:04 · 198 阅读 · 0 评论 -
List子类特点和Set子类特点
List的三个子类有Vector,ArrayList,LinkedListArrayList底层数据结构是数组,查询快,增删慢,线程不安全,效率高Vector底层数据结构是数组,查询快,增删慢,线程安全,效率低LinkedList底层数据结构是链表,查询慢,增删快,线程不安全,效率高Vector和ArrayList区别Vector线程安全,效率低ArrayList线程不安全,...原创 2019-03-14 17:33:00 · 268 阅读 · 0 评论 -
获取日期并格式化,自定义时间格式
Date d=new Date(); //获取当前时间对象 SimpleDateFormat sd=new SimpleDateFormat();//创建日期格式化对象 //System.out.println(d); System.out.println(sd.format(d)); Date d=new Date(); ...原创 2019-03-11 00:27:18 · 735 阅读 · 0 评论 -
Math类的方法
System.out.println(Math.PI); //圆周率 System.out.println(Math.abs(-10)); //取绝对值 System.out.println(Math.ceil(12.3)); //向上取整,返回double System.out.println(Math.floo...原创 2019-08-10 19:03:36 · 94 阅读 · 0 评论 -
集合的迭代(遍历)(这里以Collection为例,其他集合相同)
迭代集合(也就是遍历集合) Collection c=new ArrayList(); c.add(&quot;a&quot;); c.add(&quot;b&quot;); c.add(&quot;c&quot;); c.add(&quot;d&quot;); Iterator it=c.iterator(); //获取迭代器(迭代原创 2019-03-14 16:42:49 · 197 阅读 · 0 评论 -
Pattern类的用处(获取手机号码)
Pattern类最大的用处是获取字符串中的手机号码首先先看看API中是如何描述的:我们可以看到,典型的调用顺序,上图的ab就是正则表达式,“aaaaab&quot;就是字符串,意思就是根据正则0或多个a,一个b去匹配字符串&quot;aaaaab”,能匹配上就返回true,不能匹配就返回false;但这个调用顺序相当于 “aaaaab”.matches(&quot;ab&quot;);而我们想要获取手机号,需要对其做出一点改变。原创 2019-03-10 14:00:27 · 1975 阅读 · 0 评论 -
JAVA小游戏—————模拟斗地主进行洗牌,发牌并进行排序
package com.heima.test;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.TreeSet;public class Test3 { public static void main(String[] args) {...原创 2019-03-17 20:43:39 · 253 阅读 · 0 评论 -
JAVA---创建线程的两种方式和两种方式的区别
**实现两种多线程方式:**继承Thread,实现Runnable查看源码的区别:1.继承Thread类由于子类重写Thread类了run(),当调用start()时,直接找子类的run()方程(注:由jvm自动调用)2.实现Runnable类构造函数中传入了Runnable的引用,成员变量记住了他,start()调用run()方法时内部判断成员变量Runnable的引用是否为空,不为空...原创 2019-03-30 14:24:06 · 538 阅读 · 0 评论 -
类与对象:(具体解释,简单易懂);
类与对象:(具体解释,简单易懂);什么是类?类是一组相关属性和行为的集合。什么意思呢?就好比我们人;人有体重、身高、年龄,这些都是属性;人可以走路、跑、唱歌;这写是行为。类与对象是什么关系呢?首先想到的指定是对象是类的实例;具体该怎么理解呢?类是对一类事物的描述,是抽象的;而对象是一类事物的实例,是具体的。到这里还不理解?没关系。举个例子:就好比下图,有一张手机的图纸,有长宽高,可以打电...原创 2019-08-08 10:51:42 · 217 阅读 · 0 评论 -
JAVA---jdk1.8之后的接口(接口中定义默认方法和静态方法,私有方法)
JAVA—jdk1.8之后的接口(接口中定义默认方法和静态方法)从jdk1.8开始,接口里允许定义默认方法格式:public default 返回值类型 方法名(参数列表){ 方法体 }public interface Demo1 { public default void method2(){ System.out.println("Hello"); }}...原创 2019-08-11 21:15:42 · 5331 阅读 · 0 评论 -
JAVA---Lambda表达式
JAVA—Lambda表达式:书写格式:(参数列表) -> {一些重写方法的代码};解释说明格式:():接口中的抽象方法的参数列表,没有参数就空着,有参数就写参数,多个参数用逗号分隔->:传递的意思,把参数传递给方法体{}{}:重写接口中的抽象方法体举例:给定一个厨子Cook接口,内含唯一的抽象方法makeFood,且无参数,无返回值,使用Lambda的标准格式invoke...原创 2019-08-24 10:20:12 · 197 阅读 · 0 评论 -
JAVA---线程池
JAVA—线程池使用步骤://1.使用线程池的工厂类Executors里的静态方法newFixedThreadPool生产一个指定数量的线程池//2.创建一个类,实现Runnable接口,重写run(),设置线程任务//3.调用ExecutorService中的submit方法,传递线程任务(实现类),开启线程//4.调用ExecutorService中的shutdown方法,销毁线程池...原创 2019-08-23 21:16:51 · 94 阅读 · 0 评论