![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
子木_Lee
长风破浪会有时,直挂云帆济沧海
展开
-
TCP的三次握手和四次挥手
一、TCP协议简介TCP协议是面向对象连接的运输层协议,在传输前必须建立连接,数据传输之后,释放连接。 TCP提供可靠交付的服务,所谓可靠是指在传输工程中无重复,无丢失,无错误,但是同时会增加开销。 每一条连接都是点对点连接(一对一)。 面向字节流,所谓字节流指的是已传输过程中流入进程和流出进程的字节序列,虽然传输过程是一个一个的数据包,但这只是为了方便传输,之后在目的端重新装配 T...原创 2019-08-23 10:44:42 · 175 阅读 · 0 评论 -
编写JAVA程序,应用for循环打印菱形
编写JAVA程序,应用for循环打印菱形 ,具体代码如下:【方法一】public class Demo8 { public static void main(String[] args) { for(int i=1;i<10;i++){ for (int k = 1; k <=10-i; k++) { ...原创 2018-09-10 18:11:33 · 10236 阅读 · 0 评论 -
字符串(一)
【一】字符串的连接使用“+”运算符可以实现连接多个字符串的功能。具体实例如下:package Demo1;public class Demo1 { public static void main(String[] args) { String s1=new String("hello"); String s2=new String("java"...原创 2018-09-11 22:05:57 · 966 阅读 · 0 评论 -
字符串(二)
【六】获取子字符串获取(截取)子字符串,可运用以下语法:(1)str.substring(int beginIndex):该方法是从指定的索引位置开始截取直到该字符串结尾的子串(2)substring(int beginIndex,int endIndex):该方法是从某一索引位置截取到另一索引前一个字符位置具体示例如下:public class Demo6 { pu...原创 2018-09-12 09:44:23 · 138 阅读 · 0 评论 -
字符串(三)
【十一】按字典顺序比较两个字符串str.compareTo(String otherstr):其中str、otherstr是要比较的两个字符串,如果按字典顺序此String对象位于参数字符之前,则比较结果为一个负数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正数;如果这两字符串相等,则结果为0。public class Demo12 { public s...原创 2018-09-17 18:20:20 · 170 阅读 · 0 评论 -
Java常用的日期和时间格式化转换符
在程序设计中,经常需要显示时间和日期。如果想输出满意的日期和时间格式,一般需要编写大量的代码经过各种算法才能实现。format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。常用的日期格式化转换符 转 换 符 说 明 示 例 %te 一个月中的某一天(1~31) 2 %tb ...原创 2018-09-18 18:02:33 · 5341 阅读 · 0 评论 -
IO练习
题目:将C盘的一个文本文件复制到E盘思路一:1,读取一个已有的文本文件,使用字符读取流和文件相关联2,创建一个目的,用于存储读到数据3,频繁的读写操作4,关闭流资源代码示例一:public class CopyTextTest { /** * @param args * @throws IOException */ public static ...原创 2019-05-30 09:44:28 · 168 阅读 · 0 评论 -
IO流
IO(Input Output)一,特点1,输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出。2,字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。在对这个文字进行操作。简单说:字节流+编码表3,字节流的两个顶层父类:1,InputStream 2,OutputStream....原创 2019-05-30 09:26:17 · 451 阅读 · 0 评论 -
集合框架小练习
需求:请定义ArryaList集合,并存储Person对象。如new Person("lisi",20),并取出,将姓名和年龄打印出来。代码:public class test1 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(new Person...原创 2019-05-16 20:41:18 · 208 阅读 · 0 评论 -
多线程(七)
一、wait 和 sleep 区别?1,wait可以指定时间也可以不指定。sleep必须指定时间。2,在同步中时,对cpu的执行权和锁的处理不同。wait:释放执行权,释放锁。sleep:释放执行权,不释放锁。二、停止线程方法:stop方法。(已过时)run方法结束。1,怎么控制线程的任务结束呢?任务中都会有循环结构,只要控制住循环就可以结束任务,控制循环通常...原创 2019-05-07 19:33:29 · 111 阅读 · 0 评论 -
多线程(六)——多生产者多消费者代码优化
jdk1.5以后将同步和锁封装成了对象,并将操作锁的隐式方式定义到了该对象中,将隐式动作变成了显示动作。一、Lock接口Lock接口: 出现替代了同步代码块或者同步函数,将同步的隐式锁操作变成现实锁操作,同时更为灵活,可以一个锁上加上多组监视器。lock():获取锁。unlock():释放锁,通常需要定义finally代码块中。二、Condition接口Conditi...原创 2019-05-07 18:27:19 · 245 阅读 · 0 评论 -
多线程(五)—— 线程间的通信(等待唤醒机制)
线程间通讯:多个线程在处理同一资源,但是任务却不同。等待唤醒机制一、涉及的方法:1,wait(): 让线程处于冻结状态,被wait的线程会被存储到线程池中。2,notify():唤醒线程池中一个线程(任意).3,notifyAll():唤醒线程池中的所有线程。这些方法都必须定义在同步中,因为这些方法是用于操作线程状态的方法,必须要明确到底操作的是哪个锁上的线程。...原创 2019-05-07 17:45:10 · 230 阅读 · 0 评论 -
多线程(四)——线程的死锁
一、死锁常见情景之一:同步的嵌套二、死锁示例(面试用)class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag = flag; } public void run() { if(flag) { while(true) syn...原创 2019-05-07 11:49:37 · 97 阅读 · 0 评论 -
多线程(三)——多线程下的单例
一、饿汉式不存在线程安全问题,无变化。class Single{ private static final Single s = new Single(); private Single(){} public static Single getInstance() { return s; }}二、懒汉式存在多线程安全问题:可能每个线程会拿到不同的对象,加...原创 2019-05-07 11:34:13 · 113 阅读 · 0 评论 -
多线程(二)——线程的同步
一、线程安全问题产生的原因:1,多个线程在操作共享的数据。2,操作共享数据的线程代码有多条。总的来说,当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题的产生。二、解决思路;将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程时不可以参与运算的,必须要当前线程把这些代码都执行完毕后,其他线程才可以参与运算。...原创 2019-05-07 11:19:22 · 103 阅读 · 0 评论 -
多线程(一)
一、进程正在进行中的程序(直译)二、线程:进程中一个负责程序执行的控制单元(执行路径),一个进程中可以多执行路径,称之为多线程。一个进程中至少要有一个线程。三、多线程好处与弊端:好处:解决了多部分同时运行的问题。弊端:线程太多回到效率的降低。四、JVM启动时就启动了多个线程,至少有两个线程可以分析的出来。1,执行main函数的线程:该线程的任务代码都定...原创 2019-05-07 08:50:36 · 120 阅读 · 0 评论 -
基本数据类型对象包装类——练习题
对一个字符串中的数值进行从小到大的排序。("20 78 9 -7 88 36 29")思路:1,用字符串对象的切割方法将大串变成多个小串。2,数值最终变成小字符串,字符串-->基本类型,可以使用包装类。代码示例:public class Test { private static final String SPACE_SEPATATOR = " "; public...原创 2019-05-09 11:15:57 · 498 阅读 · 0 评论 -
Object类
Object(不断抽取而来,具备着所有对象都具备的共性内容)1,equals方法1)判断两个对象是否相等比较的是两个对象的地址2)equals方法覆写(一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据),例如public boolean equals(Object obj)//Object obj = p2; { if(!(obj instanc...原创 2019-05-06 15:28:04 · 120 阅读 · 0 评论 -
数组排序的四种方法
在程序设计中,经常需要将一组数列进行排序,这样更加方便与统计与查询。这篇博客,我就来介绍几种关于数组排序的方法。一)通过Arrays类的静态sort()方法,实现对数组进行排序,sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。语法如下:Arrays.sort(object) //其中,object是指进行排序的数组名称。算法实例:import j...原创 2018-11-26 11:36:49 · 12846 阅读 · 0 评论 -
Java中集合的输出方式
在Java中输出集合Collection有四种方式,分别如下:一)Iterator输出。 该方式适用于Collection的所有子类public class Demo1{ public static void main(String[] args) throws Exception{ Set<Student> students=new HashSet&...原创 2018-11-08 23:40:42 · 1165 阅读 · 0 评论 -
反射机制
【简介】JAVA反射机制是在运行状态中,对于任意一个类 (class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制动态获取类中信息,就是java反射 。【实现方式】方法一:Object类中的getClass()方法,用这种方式。特点:必...原创 2019-08-15 13:49:25 · 64 阅读 · 0 评论 -
Java原子性、可见性、内存模型
原子性:原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。由Java内存模型来直接保证的原子性变量操作包括read、load、use、assign、store和write六个,大致可以认为基础数据类型的访问和读写是具备原子性的。如果应用场景需要一个更大范围的原子性保证,Java内存模型还提供了lock和unlock操作来满足这种需求,尽管...转载 2019-08-20 16:09:04 · 117 阅读 · 0 评论 -
牛客网Java练习题——继承
今天在牛客网刷题时碰到了这样一道题,感觉是很基础的知识点,但是要做出来并不容易,先来看一下题目public class Test { public static void main(String [] args){ System.out.println(new B().getValue()); } static class A{ pro...转载 2019-07-30 10:54:27 · 525 阅读 · 0 评论 -
获取1~100以内的随机数
思路:方法1,可以通过Math类中的random方法获取随机数,再乘以100加1,然后转换为int类型即可方法2,可以通过Random类中的nextInt方法获取随机数代码示例:package MathTest;import java.util.Random;public class RandomNumberTest { final static int num = 1...原创 2019-05-30 00:09:16 · 14437 阅读 · 0 评论 -
Calendar练习
问题一:2028年的2月一共有多少天?思路:定义日期到2028年的3月1日,将日期向前推一天,即可。注意:Java中月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月代码示例package DateTest;import java.util.Calendar;public class GetDays { public static...原创 2019-05-29 23:50:46 · 217 阅读 · 0 评论 -
Date练习
问题:"2019-3-17"到"2019-4-6"中间有多少天?思路:1,将字符串日期对象转换为Date对象2,将Date对象转换为毫秒值3,毫秒值做差,在转换为具体时间代码示例public class DateTest { public static void main(String[] args) throws ParseException{ St...原创 2019-05-29 22:43:31 · 394 阅读 · 0 评论 -
其他对象API
一、System类1,特点1,System:类中的方法和属性都是静态的2,常见方法1,long currentTimeMillis();获取当前时间的毫秒值。 获取程序运行时间代码示例:long l1 = System.currentTimeMillis();code..long l2 = System.currentTimeMillis();System.out...原创 2019-05-29 23:24:18 · 172 阅读 · 0 评论 -
集合框架工具类
一、collections工具类1、特点:Collections:是集合框架的工具类,里面的方法都是静态的。2,方法示例1)排序(sort方法)public class CollectionsDemo { public static void main(String[] args) { demo_2(); } public static void demo_2(...原创 2019-05-29 19:39:09 · 169 阅读 · 0 评论 -
Map集合(二)
一,LinkedHashMap1,特点:可以对存入的元素,按照春如顺序进行获取2,代码示例public class LinkedHashMapDemo { /** * @param args */ public static void main(String[] args) { File f= null; HashMap<Integer,String...原创 2019-05-29 17:39:28 · 83 阅读 · 0 评论 -
Map练习
题目:“sfzsfr 54646q2/* /QW*=- 0`gxg zsfs gfhgkhlikgjfhsargdssdfsd”获取该字符串中,每一个字母出现的次数,按要求打印Q(1)W(1).......思路:1,将字符串转换为单个字母的字符数组2,定义map集合表3,将字母与出现的次数通过map映射,字母作为键,字母出现的次数作为值代码示例:publ...原创 2019-05-29 17:27:36 · 251 阅读 · 0 评论 -
Map集合
一、特点1,Map:一次添加一对元素。Collection 一次添加一个元素。2,Map也称为双列集合,Collection集合称为单列集合。3,其实map集合中存储的就是键值对。4,map集合中必须保证键的唯一性。 二、常用方法:1,添加。value put(key,value):返回前一个和key关联的值,如果没有返回null2,删除。 ...原创 2019-05-29 17:19:25 · 250 阅读 · 0 评论 -
泛型
泛型<>:jdk1.5出现的安全机制。一、好处:1,将运行时期的问题ClassCastException转到了编译时期。2,避免了强制转换的麻烦。二、<>特点1,什么时候用?当操作的引用数据类型不确定的时候。就使用<>。将要操作的引用数据类型传入即可.其实<>就是一个用于接收具体引用数据类型的参数范围。2,在...原创 2019-05-29 16:08:05 · 77 阅读 · 0 评论 -
集合框架(三)
set:无序,元素不可以重复。1,Set接口中的方法和Collection一致2,开发中 set() 常用的已实现子类|--HashSet: 内部数据结构是哈希表 ,是不同步的。 |--TreeSet:可以对Set集合中的元素进行排序。是不同步的。一、HashSet:内部数据结构是哈希表 ,是不同步的1,如何保证该集合的元素唯一性?是通过对象的ha...原创 2019-05-29 13:05:13 · 88 阅读 · 0 评论 -
集合框架(二)
一、已实现子类1,Vector(几乎不再使用)2,LinkedList1,内部是链表数据结构,是不同步的。增删元素的速度很快2,部分方法 addFirst();//添加元素 addLast(): //jdk1.6版本以后出现的新技术 offerFirst();//添加元素 offetLast(); getFirst();.//获取但不移除,如果链表为空,抛出...原创 2019-05-29 11:45:18 · 88 阅读 · 0 评论 -
IO流(三)
字节流一、OutputStream1,代码示例public class ByteStreamDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { demo_write(); } p...原创 2019-05-30 16:40:53 · 92 阅读 · 0 评论 -
装饰设计模式
一、定义:对一组对象的功能进行增强时,就可以使用该模式进行问题的解决。二、简单示例public class PersonDemo { /** * @param args */ public static void main(String[] args) { Person p = new Person();// p.chifan(); NewPe...原创 2019-05-30 11:56:51 · 211 阅读 · 2 评论 -
IO流(二)——BufferedWriter、BufferedReader、LineNumberReader
一、BufferedWriter示例public class BufferedWriterDemo { private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args) throws IOException ...原创 2019-05-30 11:36:06 · 204 阅读 · 0 评论 -
异常类(二)
一、异常处理的方式1、声明形式:通过throws关键字在函数上进行声明,如:public int method(int[] arr,int index) throws NullPointerException,FuShuIndexException{}2、捕捉形式这是可以对异常进行针对性处理的方式,具体格式为:try{ //需要被检测异常的代码。}catch(...原创 2019-05-06 14:51:21 · 90 阅读 · 0 评论 -
异常类(一)
一、对于异常的理解1,异常是在运行时期发生的不正常情况。2,在java中用类的形式对不正常情况进行了描述和封装对象,描述不正常的情况的类,就称为异常类。3,现在将正常流程代码和问题处理代码分离,提高阅读性。4,用异常类对异常进行描述,不同的问题用不同的类进行具体的描述。 比如角标越界。空指针等等。5,问题很多,意味着描述异常的类也很多,将其共性进行向上抽取,形成了异常体系。...原创 2019-05-06 14:21:09 · 288 阅读 · 0 评论 -
Java循环语句笔记
一、for循环1、例:class Demo1 { public static void main(String[] args) { for(System.out.println("a");System.out.println("b");System.out.println("c")) { System.out.println("d"); } }}程...原创 2019-03-12 18:13:07 · 374 阅读 · 2 评论