![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 56
neutron129
这个作者很懒,什么都没留下…
展开
-
Stream流常用操作
package com.neutron.java8.stream.demo;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;/** * Stream常用原创 2016-05-23 08:12:40 · 801 阅读 · 0 评论 -
集合类
集合类说明: 为什么要使用集合类呢?OOP以对象形式体现,方便对多个对象的操作,需要对对象进行存储,集合就是存储对象的常见形式。 数组和集合类同样是容器,区别是什么呢?数组是相同数据类型的,数组长度固定的容器。集合类可以存储任何类型的数据,并且集合长度是可以改变的。集合类只能存储对象,不能存储基本数据类型,集合长度是可以改变的,集合可以存储不同类型的对象。原创 2016-05-09 07:39:41 · 181 阅读 · 0 评论 -
守护线程
什么是守护线程呢? 守护线程可以看成是后台线程,比如window启动后,会默认启动很多后台线程,比如粘贴功能,显示器显示功能,这些都是后台线程。如果电脑要关机了,没有其他需要使用了,后台线程就没有存在的必要了! 1.线程中的setDeamon(boolean on)方法,参数on设置为true,表示设置此线程为守护线程。 2.当运行的线程都是守护线程时,java虚拟机原创 2016-05-08 22:03:00 · 259 阅读 · 0 评论 -
停止线程
package com.neutron.thread.stopthread;/** * stop方法已经过时,不再使用stop方法。 * 如何停止线程?run方法结束。 * 开启多线程运行,运行代码通常是循环结构,只要控制住循环,就可以让run方法结束,即线程结束。 * * 特殊情况,如果线程处于wait,sleep状态,就不会读取标记,线程就不会结束。 * 当没有指定的方式让冻结原创 2016-05-08 21:50:18 · 234 阅读 · 0 评论 -
juc包中等待唤醒机制实现
参考等待唤醒机制中原始代码 package com.neutron.thread.juc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class原创 2016-05-08 20:51:13 · 468 阅读 · 0 评论 -
tcp案例
package com.neutron.network.tcp.demo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;im原创 2016-04-24 11:58:42 · 280 阅读 · 0 评论 -
tcp协议服务器和客户端相互发送数据
package com.neutron.network.tcp.demo;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.Unknow原创 2016-04-24 10:10:31 · 4713 阅读 · 1 评论 -
tcp协议案例
tcp协议理解 需要建立客户端(Socket)和服务器端(ServerSockt)。建立连接后,通过socket中io流进行数据传输。 package com.neutron.network.tcp.demo;import java.io.IOException;import java.io.OutputStream;import java.net.Sock原创 2016-04-24 09:24:54 · 556 阅读 · 0 评论 -
upd聊天代码
/** * 使用udp协议编写聊天程序 * 编写聊天程序,有接收数据和发送数据的部分,这两部分同时执行 * 需要使用多线程,一个线程负责收信息,一个线程负责发信息。因为两个方法是不一致的,需要定义两个run方法。 * @author zhanght * */package com.neutron.network.udp.chart;package com.neutron.原创 2016-04-22 21:46:48 · 333 阅读 · 0 评论 -
tcp文件复制上传
、原创 2016-04-24 17:34:25 · 247 阅读 · 0 评论 -
tcp协议单用户图片上传
tcp协议中,单张图片,一个客户端一个服务器端演示案例。package com.neutron.network.tcp.file;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.n原创 2016-04-24 21:09:39 · 273 阅读 · 0 评论 -
ubuntu安装下载好的jdk
已经将jdk1.8下载到ubuntu本地,进行jdk1.8的安装。 步骤如下: 1.在usr/lib目录下创建jvm文件夹 sudo mkdir /usr/lib/jvm 2.将下载好的jdk1.8解压到/usr/lib/jvm目录下 sudo tar zxvf jdk-8u73-linux-x64.tar.gz -C /usr/lib/jvm原创 2016-06-01 21:06:19 · 579 阅读 · 0 评论 -
Lambda表达式中类型推断
Lambda表达式中类型推断,是java7中引入目标类型推断的拓展。 java7中的菱形操作符,使javac推断处反省参数的类型。 /** * lambda表达式中类型推断 */ public static void targetType() { // new HashMap指定泛型类型 Map wordcounts = new HashMap(); // 使用菱原创 2016-05-23 06:29:09 · 907 阅读 · 0 评论 -
常用的函数接口
常用的函数接口: @FunctionalInterfacepublic interface Function { /** * Applies this function to the given argument. * * @param t the function argument * @return the function resu原创 2016-05-21 08:06:44 · 572 阅读 · 0 评论 -
函数接口
使用Lambda表达式,关系最紧密要数函数接口。 函数接口定义:只有一个抽象方法的接口。 函数接口作用:Lambda表达式的类型。 Lambda表达式和函数接口的关系? Lambda表达式,实现函数接口,返回该的匿名实现类的对象。 解释如下: BinaryOperator addExplicit = (Long x, Long y) -原创 2016-05-21 07:44:16 · 417 阅读 · 0 评论 -
Lambda表达式操作引用值,而非对象
Lambda表达式中操作的是引用值而不是对象。 如何理解呢?匿名内部类中如果引用它所在方法中的变量,那么该变量必须声明为final类型。即该变量只可以被赋值一次,不可以重复赋值使用。 类似地,Lambda表达式中引用的变量同样只可以赋值一次,表现形式上可以加上final,可以不使用final。但是本质上Lambda表达式中的变量仅能赋值一次。 public stat原创 2016-05-21 07:31:18 · 2651 阅读 · 0 评论 -
Lambda表达式类型推断
目标类型,Lambda表达式所在上下文环境的类型,比如将Lambda表达式负值给局部变量,或者作为方法参数。局部变量或者参数类型就是Lambda表达式的目标类型。 比如作为方法参数,如果不显示标明Lambda表达式类型,那么就会由编译器根据上下文环境环境来推断出来。 类似于String[] arrs = {"str", "hello"};没有显示声明str或者hello的类型,但是原创 2016-05-21 07:27:59 · 563 阅读 · 0 评论 -
面向对象编程和函数式编程
面向对象编程是对数据进行抽象;函数式编程是对行为(方法)进行抽象; 什么是函数式编程,核心是将不可变值通过函数进行处理,映射成另一个数值.和数学中的函数理解相同. 什么是面向对象编程,核心是将所操作的数据抽象成类,将具体化为抽象,将豪华的法拉利变成设计图纸;原创 2016-05-21 06:23:57 · 687 阅读 · 0 评论 -
集合框架迭代器
package com.neutron.collection.demo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * 集合框架迭代器 * 集合框架取出元素方法,定义在集合内部,这样方便直接访问集合内容。 * 不同容器的数据结构不同,但是取出数据的共性方法细节不一样,原创 2016-05-10 06:04:44 · 256 阅读 · 0 评论 -
集合接口Collection案例
以java8为基础。 package com.neutron.collection.demo;import java.util.ArrayList;import java.util.List;/** * collection接口说明 * @author zhanght * */@SuppressWarnings({"rawtypes", "unchecked"})pu原创 2016-05-09 21:58:21 · 334 阅读 · 0 评论 -
ubuntu上安装jdk1.8
在Ubuntu上安装Oracle JDK 使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好: 1.sudo add-apt-repository ppa:webupd8team/java 2.sudo apt-get update 3.sudo apt-get install oracle-java8-installer 4.sud原创 2016-05-30 21:12:58 · 410 阅读 · 0 评论 -
udp协议案例
package com.neutron.network.udp;import java.io.IOException;import java.net.*;/** * udp协议发送 * @author zhanght * */public class UdpSender { /** * 使用udp协议发送信息 * @param message 被发送的信息 *原创 2016-04-21 22:07:05 · 375 阅读 · 0 评论 -
进程和线程理解
如何理解进程和线程呢? 首先说下彼此的依附关系。线程因进程生而生,因线程亡而亡。进程就是包工头,线程就是工人。 其次说程序执行是cpu会给分配个进程,比如启动word,迅雷等,在window的任务管理器中进程管理就会看到相对应程序的进程。进程是cpu分配资源的基本单位。 再次说下线程,当cpu给包工头分配资源后,包工头不干活,但是会给手下的工人(线程原创 2016-04-27 06:38:25 · 301 阅读 · 0 评论 -
线程生命周期
原创 2016-05-03 22:45:12 · 174 阅读 · 0 评论 -
实现线程的两种方式
实现线程的两种方式:继承Thread类和实现Runnable接口。 两种方式差异:实现Runnable接口避免单继承的局限性。 继承方式案例:package com.neutron.thread.demo;/** * 继承方式 * 1.继承Thread类 * 2.重写Thread的run方法,将自定义的方法存储在run方法中 * 3.调原创 2016-05-03 21:46:54 · 220 阅读 · 0 评论 -
Iterator
package com.neutron.collection.iterator;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;/** * Iterator接口学习 * @author zhanght * */public class IteratorDemo {原创 2016-05-12 06:35:47 · 179 阅读 · 0 评论 -
List接口案例
package com.neutron.collection.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * Collection接口的子类List,和Set * List是有序的,并且允许元素重复,因为List等层实现是数字,存在索引,index * Se原创 2016-05-11 21:02:06 · 292 阅读 · 0 评论 -
Stream对数字处理
Stream中对数字处理 对基本类型特殊处理的方法命名规范。 1.如果方法返回类型是基本数据类型,则在前面加to,例如ToLongFunction。 2.如果参数是基本类型,则不需要前缀加上类型名即可,例如LongFunction. 3.如果高阶函数使用基本类型,则在操作后加上后缀To再加上基本类型,例如mapToLong。 可以看出,最终结果是基本数据类型原创 2016-05-24 07:14:21 · 655 阅读 · 0 评论 -
Stream常用操作min,reduce
/** * min方法 * 用途:取出数据中最小值 */ public static void minEG() { List nums = Arrays.asList(1, 23, -45, 7, 9); Integer min = nums.stream() .min(Comparator.comparing(num -> num))原创 2016-05-24 06:52:22 · 5557 阅读 · 0 评论 -
URL和URLConnection案例
package com.neutron.network.url;import java.net.MalformedURLException;import java.net.URL;/** * URL案例 * @author zhanght * */public class URLDemo { /** * 主要查看URL的作用 */ public static v原创 2016-04-26 06:04:10 · 937 阅读 · 0 评论 -
DNS解析过程
当我们输入www.baidu.com的时候,我们到底怎么会访问到百度呢? 过程解释如下: 当在浏览器地址栏中输入www.baidu.com的时候,会执行的操作如下: 1.首先会在本地机器上根据hosts中的域名和ip映射关系,查找到对应的ip内容,假设本地hosts设置有 127.0.0.1 www.baidu.com 那么原创 2016-04-26 20:07:14 · 396 阅读 · 0 评论 -
socket理解
socket是网络服务提供的机制,通信两端都有socket。可以将socket理解为码头,而通信内容是两个港口要传输的货物,有码头后可以才能使用船只传递货物。 网络通信其实就是socket之间的通信,数据在两个socket之间使用io进行数据传递。io就是船只。原创 2016-04-21 20:25:33 · 239 阅读 · 0 评论 -
线程安全问题
线程安全问题导致的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有彻底执行完毕,此时另一个线程参与进来执行,导致共享数据的错误。 线程安全解决办法:对多条操作共享的语句,每次只能让一个线程执行完成。在执行的过程中,其他线程不可以参与执行。 解决方案:同步代码块。synchronized(对象) { 需要被同步的代码 }; 哪些代码需原创 2016-05-04 05:53:30 · 234 阅读 · 0 评论 -
java网络编程基础
网络通信要素:ip地址,端口号,通信协议。 ip地址:网络中设备的标识,身份证的作用。 本地回环地址:127.0.0.1,即安装完后系统和网卡后,没有联网,本地机器ip地址 本地主机名:localhost 端口:用于标识进程的逻辑地址,不同进程的标识 有效端口:0~原创 2016-04-21 05:25:04 · 196 阅读 · 0 评论 -
多生产者和多消费者等待唤醒
package com.neutron.thread.wait_notifyall;public class Resource { private String resName; private int count = 1; private boolean flag = false; public synchronized void set(String resName) {原创 2016-05-06 06:19:20 · 183 阅读 · 0 评论 -
等待唤醒机制
Java多线程中等待唤醒机制. wait,notify,notifyAll.三个方法都是对持有锁的线程操作,所以使用在同步过程中. 为什么这些方法定义在Object类中呢?让一个线程等待和唤醒一个线程,必须使用的是同一把锁.不可以对不同锁的线程进行唤醒.而锁可以是任意对象,可以被任意对象调用的方法定义在Object类中.原创 2016-05-05 07:04:33 · 243 阅读 · 0 评论 -
List实现类特点
List的实现ArrayList,LinkedList,Vector ArrayList的底层数据结构是数组,查询速度快,增删速度慢,线程不安全; LinkedList的底层数据结构是链表,增删速度快,查询速度慢。 Vector的底层数据结构是数组,线程安全,增删查速度慢,被ArrayList替代。原创 2016-05-16 07:44:07 · 373 阅读 · 0 评论 -
ListIterator接口
package com.neutron.collection.iterator;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;/** * ListIterator接口案例 * @author zhanght * */public class ListIterator原创 2016-05-16 07:28:41 · 273 阅读 · 0 评论 -
java死锁案例
package com.neutron.thread.demo;/** * 死锁案例 * 为什么会出现死锁呢?A持有B需要的锁,B持有A需要的锁,必须相互都需要,并且相互不释放,此时就会出现死锁问题 * @author zhanght * */public class DeadLock implements Runnable { private boolean flag; pu原创 2016-05-04 22:32:15 · 300 阅读 · 0 评论 -
单例模式
单例模式和线程安全 单例模式有两种方式:饿汉式和懒汉式。 饿汉式代码如下: package com.neutron.singleten;/** * 饿汉式单例模式 * 此模式线程安全 * @author zhanght * */public class Singleten { private static final Singleten si原创 2016-05-04 21:53:08 · 186 阅读 · 0 评论