
java
文章平均质量分 59
芷月_wyy
产品测试
展开
-
Java类加载器
目录0.知识储备——JVM内存分区&双亲委派机制1.Java类加载机制1.1核心类加载器启动原理类加载的含义:类加载过程:1.类的加载2.类的连接3.初始化1.2类加载的双亲委派机制2.类加载器的类型3.自定义类加载器的实现0.知识储备——JVM内存分区&双亲委派机制双亲委派——类加载器默认不直接对字节码文件进行加载,而是交给它的上一级类加载器,递归这个操作,如果上一级没有加载,它自己才回去加载。这篇文章向我们介绍了双...原创 2022-02-27 23:16:20 · 655 阅读 · 2 评论 -
关于Java锁的二三事
闲聊扯皮部分(可跳过)最近真是泪目了呀,家人们。就博客好久都没更新了,这不是没有原因的。博主今年不是应届毕业生嘛,就去参加秋招。之前整个8月份都一直在实习,等到八月底,结果没hc了,像猛然惊醒的梦中人一样,就慌不择路地开始投简历,九月初,真的有点迟了呀家人们,不过面试机会还是有一些的,但就是之前没准备啊,光幻想实习转正了,结果就各种挂,然后投了好多要笔试的,笔试又是狂挂。没办法呀,在家闭关学习了一阵子,hc又被卷走了一大批,好容易后来能进面试了,一轮游。本来学的客户端,但人家客户端宁可要零基础算法好的,原创 2021-11-17 23:10:23 · 651 阅读 · 1 评论 -
自定义EditText自设样式并带有下拉选择框的实现
先上一张效果图:在drawable目录下建一个xml:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item> <shape xmlns:android="http://schemas.android.com/apk/res/android"原创 2020-05-21 22:34:49 · 751 阅读 · 0 评论 -
leetcode四月二十五日解题
动态规划法逆过程从终点开始看有几种走法,finish可能是往下走或者往右走得到的,因此finish一格有两种走法....一直这样退回去public int uniquePaths(int m, int n) { if(m==0||n==0) return 0; int[][]dp = new int[m][n]; dp[0][0]=1; ...原创 2020-04-25 20:15:10 · 163 阅读 · 0 评论 -
leetcode翻转对(归并排序法)
看到这道题你可能第一反应是下面这段代码: public int reversePairs(int[] nums) { int res=0; for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(i<j&&a...原创 2020-04-22 10:01:38 · 348 阅读 · 0 评论 -
最长连续序列
❤本题不是很好想,具体思路我已经录制视频上传到抖音账号:王玥遥上了,需要自取❤class Solution { public int longestConsecutive(int[] nums) { if(nums.length==0) return 0; if(nums.length==1) return 1; HashMap<Integ...原创 2020-04-20 23:45:52 · 268 阅读 · 0 评论 -
leetcode四月十九日解题
双指针法设置两个指针,一个指向第一条垂直线,一个指向最后一条垂直线,记录最大面积为area,area初始值等于n*Math.min(A0,An),然后比较左右两根垂直线哪一条更短,更短的向中间移动,计算新的面积值然后如果比原本的面积更大就更新area.public int maxArea(int[] height) { int i=0,j=height.length-1; ...原创 2020-04-19 22:40:26 · 202 阅读 · 0 评论 -
leetcode第五题:最长回文子串
一开始的错误想法后缀数组法:把S倒置过来得到S’,然后将他们拼接在一起得到字符串T,在T的最中间插入一个字符串中没有的符号+,遍历这个字符串T,发现加号之前有跟后面一毛一样的子字符串,输出。错误点:对于ABCDETFDCBA这样的字符串,遍历得出的最长回文子串将会是ABCD,但实际上最长子串长度仅为1.动态规划法对于所给的字符串s,假设dp[i][j]=true表示字符串s[i...j...原创 2020-04-18 23:05:18 · 194 阅读 · 0 评论 -
数据结构——二分搜索树的实现
public class BST<E extends Comparable<E>> { private class Node{ public E e; public Node left,right; //构造函数,让用户传入的参数e等于这里的e public Node(E e){ this.e=e; left=null; right=n...原创 2020-02-10 14:37:40 · 190 阅读 · 0 评论 -
数据结构——链表的实现
public class LinkList<E> { private class node{ public E e; public node next; public node(E e,node next){ this.e=e; this.next=next; } public node(E e){ this(e,null); } ...原创 2020-01-29 13:24:34 · 262 阅读 · 0 评论 -
数据结构——数组队列与循环队列的实现
一.数组队列数组队列第一个元素出队,后面的元素要全部向前移动一位,同时size--,因此出队的时间复杂度是O(n)的复杂度。还是复用自己封装的动态数组:public class ArrayQueue<E> implements Queue { private MyArray<E> array; @Override public int getSiz...原创 2020-01-28 16:18:46 · 211 阅读 · 0 评论 -
数据结构——Stack的二次封装
public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); E peek();}import java.lang.reflect.Array; class ArrayStack<E> implements Stack<E&g...原创 2020-01-27 20:58:45 · 165 阅读 · 0 评论 -
数据结构——数组的二次封装
public class MyArray<E> {//泛型数组 private E[] data; //数组的容量private int size;//删除数组元素 private E remove(int index){ if(index<0||index>=0){ throw new IllegalArgumentException...原创 2020-01-27 17:36:09 · 200 阅读 · 0 评论 -
Leetcode166分数到小数做题收获
给定两个整数,分别表示分数的分子numerator 和分母 denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。示例 1:输入: numerator = 1, denominator = 2输出: "0.5"示例2:输入: numerator = 2, denominator = 1输出: "2"示例3:输入: nume...原创 2019-10-28 16:06:32 · 319 阅读 · 0 评论 -
设计模式:工厂方法模式学习
使用场景:工厂方法用于多个方法实现了一个接口的情况下。定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式的简单实现:1,创建抽象工厂2,具体工厂3,客户端调用工厂方法一:参数法工厂方法二:多个函数法工厂方法三:静态方法假定场景:现在有一个图形类的接口,下面有方法决定是计算圆面积或者是三角形面积。参数法...原创 2019-10-24 12:57:55 · 171 阅读 · 0 评论 -
java的基础语法(练习篇2)
1.设计出一程序,输入四个整数,分别显示出其中的最大值与最小值import java.util.Scanner;public class Maxmin { public static void main(String[] args){ int a=0,b=0,c=0,d=0; Scanner in=new Scanner(System.in); a=in.nextInt(); ...原创 2018-06-17 22:31:48 · 213 阅读 · 0 评论 -
PTA(两道和电话号码有关的题)
开心,小伙伴们都被卡住了,结果我秒了哈哈哈哈哈哈!今天和电话号杠上了。7-3 电话号码同步(Java) (10 分)文件phonebook1.txt和phonebook2.txt中有若干联系人的姓名和电话号码。请你设计一个程序,将这两个文件中的电话号码同步。(所谓同步,就是将两个文件中的电话号码合并后剔除相同的人名和电话号码。请将同步后的电话号码按照姓名拼音顺序排序后保存到文件phoneb...原创 2019-01-05 13:37:09 · 2961 阅读 · 0 评论 -
PTA简单的计算器
7-1 简单的计算器 (10 分)编程实现一个简单的计算器,实现两个整数的加、减、乘、除。 注意:输入的数字为整数,可能大于Long.MAX_VALUE (即: 9223372036854775807)输入格式:例如输入被除数和除数,除号是“/”:199818221687230837883277970155607217447/15607605175531087007(除法运算)输出...原创 2019-01-05 14:46:53 · 2557 阅读 · 0 评论 -
PTA@Java复习
Java不日就要考试,复习一点算一点。思来想去,就复习PTA的题吧❤Q1.设计一个名为Rectangle的类表示矩形。这个类包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法。 一个名为getArea()的方法返回这个矩形的面积。 一个名为g...原创 2019-01-06 00:20:03 · 1544 阅读 · 0 评论 -
rxjava与泛型通配符(wildcard)
最近,为了充分发挥retrofit的优势,我又去看了rxjava。说是看呢,其实也就是简单的入了个门。rxjava中用到了很多泛型的知识,所以不注意很容易出错。为了把rxjava搞明白,我学习了泛型通配符。一.关于泛型通配符在代码中,用“?”(这个‘?’名为通配符)表示未知类型,通配符可以用作各种情况:1.通配符做参数import java.util.ArrayList;imp...原创 2019-01-30 16:19:11 · 757 阅读 · 0 评论 -
TCP的三次握手和四次挥手
通常进行HTTP连接网络的时候会进行TCP的三次握手,然后传输数据,之后再释放连接。第一次握手:建立连接。客户端发送连接请求报文段,将SYN设置为1,Seqeence Number(seq)为x,接下来客户端进入SYN_SENT状态,等待服务器端的确认。第二次握手:服务器收到客户端的SVN报文段,对SVN报文段进行确认,设置Acknowledged Number(ACK)为x+1,同时自己...原创 2019-08-23 17:21:37 · 165 阅读 · 0 评论 -
设计模式:单例模式学习
单例模式的原理:有些对象我们只需要一个,比如线程池,缓存,硬件设备等。如果多个实例会有造成冲突,结果不一致性等问题。单例模式确保一个类最多有一个实例,并提供一个全局访问点。五种经典的单例模式1,饿汉模式这种方式在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。public class Singleton{ private static Singleto...原创 2019-09-01 13:40:14 · 136 阅读 · 0 评论 -
一道坑我良久的PTA大整数题(欢迎大家来和我探讨)
题目是这样的:7-1 找素数 (10 分)请编写程序,从键盘输入两个整数m,n,找出等于或大于m的前n个素数。输入格式:第一个整数为m,第二个整数为n;中间使用空格隔开。例如:103 3输出格式:从小到大输出找到的等于或大于m的n个素数,每个一行。例如:103107109输入样例:9223372036854775839 2输出样例:92...原创 2019-01-05 01:59:32 · 687 阅读 · 2 评论 -
java的继承,多态,重载
一.方法重载定义:多个方法有相同的名字,编译时能识别出来。这些方法的签名不同,或者是参数的个数不同,或者是参数类型不同。通过方法重载能实现多态。方法返回值类型,修饰符类型,和重载没有关系,可以与父类不同。父类和子类的关系里,包含了一条里氏替换原则—也就是Is-A的关系。也就是说父类能够被替换成子类,那么父类所能接受的任何参数子类也要能够接受。这要求子类要求只能比父类更宽松,不能更严格。二....原创 2018-12-16 18:15:48 · 771 阅读 · 0 评论 -
Java的基础语法:重载(练习篇5)
1.编写重载方法,分别实现输出字符串,字符串数组,整型数据和整形数组。 import java.util.Scanner;public class Shuchu { public static void pri(String s){ System.out.println(s); } public static void pri(char a[]){ for(i...原创 2018-07-20 20:19:05 · 3266 阅读 · 0 评论 -
Java的集合:Collection类和Map类(学习篇8)
概念:Java的集合可以放入多个对象的引用,就像是一种容器。集合除了可以保存数量不等的多个对象还可以保存具有映射关系的关联数组。组成:Java的集合框架主要有List,Set,Map,Iterator如图所示对应的4个接口,其实,List和Set继承了collection,而Map则独成一体,他们之间的关系如图: 首先是Collection类。Collection集合分类:添加元素...原创 2018-07-27 00:40:04 · 995 阅读 · 0 评论 -
Java的基础语法(学习篇4)
本来这次应当总结继承的内容了,为什么又绕回来呢?因为。。。前两天做题的时候翻船了,有的东西还是很有用的我却不会用。首先是数组操作类。1.Arrays类类Arrays提供了像排序,检索,复制,比较这样的一系列数组操作的办法。Arrays.sort(数组名):将整个数组按升序排序Arrays.sort(数组名,index1,index2)对数组第index1(包含)到第index2(不包含)的元素按升...原创 2018-06-22 19:49:28 · 338 阅读 · 0 评论 -
java的面向对象(学习篇1)
java的面向对象概念:以类的方式组织代码,以对象的形式封装数据。类是面向对象程序的基本单位。对象,即具体的事物。类,即对对象的抽象。先有具体的对象,然后抽象各个对象之间象的部分,归纳出类然后通过类再认识其他对象。对象和类的关系,就是特殊到一般,具体到抽象。某个类的对象就是那个类的实例。类可以看成是一个对象的模板,是对对象所具备的特点进行的总结概括。也就是说,类中定义了这一类对象应具有的所有静态和...原创 2018-06-10 19:43:11 · 183 阅读 · 0 评论 -
java的基本语法(练习篇1)
1.编写一个应用程序求1!+2!+3!+……+20!public class Jiechenghe{ public static void main(String[] args) { int i=1; int j=1; int sum=0; for(i=1;i<=20;i++){ j*=i; ...原创 2018-06-17 18:29:27 · 592 阅读 · 0 评论 -
java的面向对象:继承1(学习篇3)
继承是面向对象编程的核心特点,又称为拓展,顾名思义,可以在现有类的基础上扩充新的属性和方法,其隐含的含义是扩展后的类同时也具有被扩展类的属性与方法。一个类从另一个类扩展而来,它就具有原有类的相关属性与方法,调用父类的这些方法就像调用该类自己的方法一样,从方法调用的形式上看,调用父类的方法与调用自己的方法并没有什么不一样。学习继承的知识首先你要理解this关键字。简单来说,this就是指对象变量中所...原创 2018-06-16 23:56:08 · 158 阅读 · 0 评论 -
java的面向对象:重载(学习篇2)
方法的重载,方法的重载是指一个类中可应定义有相同名字,但是参数不同的多种方法,调用时,会根据不同的参数表选择不同的方法。原创 2018-06-15 21:04:44 · 205 阅读 · 0 评论 -
Java的面向对象:多态(学习篇6)
1.为防止混淆,我在这里一次性的总结面向对象编程中封装,继承,多态的概念。封装,是指将客观世界中某个事物的属性与行为绑定在一起,并放置在一个逻辑单元内(即对象内),该逻辑单元负责将不需要让外界知道的信息隐藏起来, 外界对对象内部属性的所有访问只能通过提供的用户接口来实现。这样做既可以实现对对象信息的保护,即不允许用户随意更改对象的属性,又可以提高软件的可维护性,即只要用户接口不改变,任何封装体...原创 2018-07-21 20:34:48 · 189 阅读 · 0 评论 -
Java:用URL下载网站实例
package C;import java.io.*;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class URLDemo { public static void main(String args[]){ try{ /...原创 2018-08-13 10:09:20 · 908 阅读 · 0 评论 -
Java的集合:HashMap和TreeMap(学习篇9)
HashMap是Java中十分经典的数据结构,是Java类库中为映射提供的两个经典实现之一(另一个是TreeMap),它是一种散列映射,散列映射对键进行散列,散列或比较函数只能作用于键,按照索引对元素进行了分组。不同的键可能会计算出相同的数组下标。hashmap<k,v>泛型类实现了泛型接口Map<k,v>,hashmap中的绝大多数方法都是map<k,v>...原创 2018-08-03 21:42:28 · 679 阅读 · 0 评论 -
Java的多线程(学习篇12)
线程:所谓线程,是一个程序内部的顺序控制流。线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,多线程是指同一个程序中有多个进程流共同执行。Java的线程是通过java.lang.Thread类来实现的。创建新线程:A.定义线程类型实现Runable接口Thread myThread=new Thread(target) //target为Ru...原创 2018-08-07 18:47:05 · 168 阅读 · 0 评论 -
Java的IO流(学习篇11)
IO流按照流向分为输入流和输出流。输入流读入数据,输出流写出数据。按照数据类型,又分为字节流和字符流。读取记事本中的纯文本可以采用字符流,其他时候一律使用字节流。IO流主要有四个抽象类,InputStream和OutputStream,Reader和Writer。Java.io是专门为用户提供I/O操作的软件包。字符流的缓冲装饰类:利用字符输入输出流逐个字符读取文件或者写入文件时,需要频繁...原创 2018-08-06 18:01:58 · 307 阅读 · 0 评论 -
Java的网络编程:socket通信
概念:socket好比一部电话机,两个程序在网络上通过一个双向链路进行通信,这个双向链路的每一端成为一个socket。套接字接口socket是传送层提供的网络进程接口,通信的主动方是客户端,它利用socket向服务器(接收方)发出请求,服务器接受客户端发出的请求,返回服务结果。进程之间的通信首先要建立各自的套接口,套接口同一台网络计算机的一个特定进程关联,与进程建立的套接口绑定在一起。客户...原创 2018-08-15 14:56:03 · 386 阅读 · 0 评论 -
Java的基础语法:异常(学习篇10)---
异常机制是为防止发生错误时程序直接崩溃而设置的。异常做到了:●向用户报告错误●保存所有的工作结果●允许用户以妥善的方式退出程序。程序中可能出现的错误主要分为用户输入错误,设备错误,物理限制(可用存储空间已用完)和代码错误。异常分类:在Java中所有异常对象都派生于Throwable类的一个实例。所有的异常都由Throwable派生而来,但在下一层立即分解为两个分支:Error和Expectio...原创 2018-08-05 22:01:31 · 224 阅读 · 0 评论 -
Java:逆波兰表达式
package 转后缀表达式;import java.math.BigDecimal;import java.util.*;public class Main { public static Stack Houzhui(StringBuilder s) { Stack<String> stacka = new Stack<String>(); //存放...原创 2018-08-03 21:49:27 · 1041 阅读 · 0 评论 -
Java的面向对象:接口(学习篇7)
接口技术:一个类可以实现一个或多个接口,并在需要接口的地方 ,随时使用实现了接口的对象。接口不是类,而是对类的一组需求描述。接口通过关键字interface定义,接口中的方法一定是抽象的,不能有方法体,但是接口中的方法没有必要用abstrat修饰,在接口中也可以定义数据成员,但是,接口中的数据成员只可以被视为常量,而不是变量。从结构上,接口由接口说明和接口体两部分组成。接口说明中,只有关键字i...原创 2018-07-22 18:06:20 · 226 阅读 · 0 评论