摘要:由于版本问题,通知可能显示不出来。。 两个活动,Main主活动用来显示通知,Detail用来显示通知详细内容 两个布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro
阅读全文
摘要:写了四种对话框 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas
阅读全文
摘要:安卓版本高了就会有点问题,不能静态注册 令活动Main用来发广播,另一个接收器(不是Activity而是receiver)用来接收广播 注册文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schema
阅读全文
摘要:有两个活动:一个是Main,用来设定闹钟,另一个是闹钟到点提示的活动Alarm Main布局文件 <?xml version="1.0" encoding="utf-8"?> <TimePicker xmlns:android="http://schemas.android.com/apk/res/
阅读全文
摘要:ActionBar指的是app上面那一栏选项 首先要自定义一个资源文件夹menu,在里面写一些菜单选项 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/and
阅读全文
摘要:首先要在资源目录下新建menu目录,所有的菜单布局文件都在这个目录下 选项菜单和上下文菜单的资源文件 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/andr
阅读全文
摘要:布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andro
阅读全文
摘要:当不直接在intent中指定组件名时,就是隐式使用intent,此时要配合过滤器来使用,找到目标的组件 注册文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/ap
阅读全文
摘要:布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android
阅读全文
摘要:intent通过ComponentName指定要执行的组件名字,创建一个Activity时就可以用这个方式进行指定 通过Main启动Detail 两个活动的布局 Detail <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and
阅读全文
摘要:新建一个Fragment的过程 package com.example.myactivityiiii; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import and
阅读全文
摘要:图像选择:Main中点击选择图像按钮,启动Head活动用来选择图像, 然后将被选择图像通过bundle发送给Main,同时附带返回值,方便Main来判断 Head布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and
阅读全文
摘要:Bundle是个保存元组<key,value>的数据结构,两个活动传递数据时就通过Bundle进行传递 在Main中输入数据,然后将数据传递给Address 两个活动布局 Main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:
阅读全文
摘要:注意 onRestart的箭头是弄错了,应该指向onStart MainActivity的布局文件和java代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.co
阅读全文
摘要:布局文件 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/
阅读全文
摘要:布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android
阅读全文
摘要:额外新建一个layout,用来布局ImageView组件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:o
阅读全文
摘要:layout代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.and
阅读全文
摘要:进度条:ProgressBar 拖动条:SeekBar 星级条:RatingBar <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and
阅读全文
摘要:日历,时钟,计时器 package com.example.mybaseuii; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.os.Bundle; impor
阅读全文
摘要:两种文本框:EditText,TextView, 两种按钮:Button,ImageButton, 单选按钮/单选按钮组:RadioButton,RadioGroup 复选框:CheckBox <?xml version="1.0" encoding="utf-8"?> <LinearLayout
阅读全文
摘要:相对布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andr
阅读全文
摘要:#include <bits/stdc++.h> using namespace std; typedef long long ll; #define ls (o<<1) #define rs (o<<1|1) const int M = 8e3+7; int n; ll c[M][M]; ll t
阅读全文
摘要:/* 性质1:逆元的对应性 a*b = 1 => b*a = 1 (mod p) 即模p意义下,a的逆元是b,那么b的逆元也是a 性质2:逆元的随机(均匀)分布性 每个数的逆元都是在[2,p-1]随机散落的 模拟一下符合条件的数出现的情况: 如果某个数x2的逆元是2,那么x2之后的数都不会再满足条件
阅读全文
摘要:/* 区间 [l1,r1][l2,r2] 的形成逆序对的概率 只考虑相交的情况:三种情况对应的总数tot进行分情况讨论 这两个区间里取到逆序对的概率是tot/len1*len2 */ #include<bits/stdc++.h> using namespace std; #define N 100
阅读全文
摘要:#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <cmath> typedef long long ll; using namespace std; int n,m; int
阅读全文
摘要:/* 以某个K点为根,建立一棵包含K个点的最小树, 处理出这棵树内每个点到最远点的距离dis[i] 处理出树外点到这棵树的最近的点pa[i] 树内点:Sum-dis[i] 树外点:Sum-dis[pa[i]]+deep[i]-deep[pa[i]] */ #include<bits/stdc++.h
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; typedef long long ll; const int M =2e6+7; int head[M],cnt; struct EDGE{int to,nxt;}ee[M*2]; void add(int
阅读全文
摘要:/* 每个结点维护一个set存储该节点内的结点个数 然后找到最大的子树maxv,Smaxv拷贝给Su,再把u加入集合 然后遍历剩下子树,依次加进Su即可 */ #include<bits/stdc++.h> using namespace std; #define N 100005 #define
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; const int M =1e5+7; typedef long long ll; ll a[M],ct[M]; int main() { int n; scanf("%d",&n); for(int i=1;
阅读全文
摘要:import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { int[] a=new int[] {2,3,5,7,11,13,1
阅读全文
摘要:对一个向下整除的式子快速求和 #include <bits/stdc++.h> using namespace std; typedef long long ll; //typedef __int128 LL; //typedef unsigned long long ull; //#define
阅读全文
摘要:#include<bits/stdc++.h> #include<vector> using namespace std; #define N 300005 #define ll long long vector<int>G[N]; ll n,m; pair<int,int>p[N]; ll fa[
阅读全文
摘要:package functional; /* 定义:如果一个接口里面只声明了一个函数,就称为函数式接口 lambda表达式的本质:作为函数式接口的实例,必须依赖一类特别的对象类型——函数式接口 所以用匿名实现类表示的都可以用lambda表达式来写 Java.util.function 下也定义了Ja
阅读全文
摘要:TCP部分 new socket对象 package ip; /* 1.通过IP地址和域名new InetAddress对象 2.本地回路地址:127.0.0.1 对应localhost,表示本地主机 3.IP地址和端口号接在一起组成一个socket,类似于网络节点 @author zsben @c
阅读全文
摘要:感觉这两个流挺实用的 第一个是重定system.in/out的 /* * 1.标准输入输出流 * System.in :标准的输入流,默认从键盘输入 * System.out 标准的输出流,默认从控制台输出 * System类的setIn(InputStream is) / setOut(Print
阅读全文
摘要:package stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; imp
阅读全文
摘要:缓冲流Buffered package stream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.Fil
阅读全文
摘要:package stream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import org.jun
阅读全文
摘要:流的关系体系和字符流 package stream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import jav
阅读全文
摘要:package file; import java.io.File; import java.io.IOException; import org.junit.jupiter.api.Test; /* * File类的使用 * 1.File类的一个对象,代表代表一个文件或文件目录,这个文件不一定要实
阅读全文
摘要:静态代理 package proxy; /* @author zsben @create 2020-01-06 23:25 */ interface ClothFactory{ void produceCloth(); } //代理类 class ProxyClothFactory implemen
阅读全文
摘要:/* 思路:借鉴 dsu on tree,自底往上进行合并 给每个叶子结点赋初始值为1,每个结点依次合并每个儿子 为了防止冲突,子树在被并入当前结点时,所有结点都要重新编号 最后把当前结点插到子树里去,由于又插进了一个结点,所以再重新编号一次 每个最多被重新编号n次,复杂度O(n^2) */ #in
阅读全文
摘要:很简单的题 #include<bits/stdc++.h> using namespace std; #define N 200005 #define ll long long ll x[N],n,m; map<ll,int>mp; vector<ll>ans; struct Node{ ll po
阅读全文
摘要:首先定义一些类和接口 package reflection1; public interface MtInterface { void info(); } package reflection1; import java.io.Serializable; public class Creature<
阅读全文
摘要:先定义一个Person类 package reflection; public class Person { private String name; public int age; public String getName() { return name; } public void setNa
阅读全文
摘要:https://blog.csdn.net/qq_31655965/article/details/55049192 枚举类的用法是看这篇博客明白的,总的来说,把枚举类看成是一种class,其构造函数被private了,且在类内已经创建了一些静态的常量对象,我们只能用这些常量对象(很像单例模式)
阅读全文
摘要:/* 原问题可以简化成:给定n对区间[sai,eai],[sbi,ebi], 是否存在i,j,使[sai,eai],[saj,eaj] 与[sbi,ebi],[sbj,ebj]有且仅有一组相交 思路:遍历第i对区间,先找到a部分和[sai,eai]相交的所有段,设这个段的集合为S, 由于题意,S中所
阅读全文
摘要:package threadpool; /* 创建线程的方式四:使用线程池 1.提供指定线程数量的线程池 2.执行指定的线程的操作,需要实现Runnable接口或Callable接口实现类的对象 3.关闭连接池 好处: 1.提高响应速度,减少了创建线程的时间 2.降低资源消耗(重复利用线程池中线程,
阅读全文
摘要:package callable; /* 创建线程方式三:实现Callable接口 1.创建一个实现Callable的实现类 2.实现call方法,将此线程需要执行的操作声明在次方法中 3.创建Callable接口实现类的对象 4.将此对象作为参数丢到FutureTask构造器中,创建FutureT
阅读全文
摘要:package communication; /* 使用两个线程1,2交替打印1-100 线程通信方法: 1.wait():一旦执行此方法,当前线程进入阻塞态,并释放锁 2.notify():会唤醒被wait的一个线程,如果有多个线程wait,则唤醒优先级高的 3.notifyAll():唤醒所有被
阅读全文
摘要:关于jvm中string的理解,看这篇博客就行了https://blog.csdn.net/qq_34490018/article/details/82110578 要点就是把string理解为一个不可变对象,和c++的string不同 常用方法看这篇博客 https://www.cnblogs.c
阅读全文
摘要:对 Collection 进行迭代的类,称其为迭代器。 迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。 如何获取迭代器?Collection接口中定义了获取集合类迭代器的方法(iterator()),所以所有的Co
阅读全文
摘要:Collection下的容器 1.Set HashSet是最普通的set,仅能用来存储不同的数据 LinkedHashSet主要用来FIFO TreeSet主要用来排序,所以不允许null(基本上等价于stl的set了,底层也是红黑树) TreeSet的两种排序方法: 1.自然排序,让TreeSet
阅读全文
摘要:好文章! https://blog.csdn.net/s10461/article/details/53941091
阅读全文
摘要:package lock; /* 方式三: Lock锁 synchronized和lock的不同 1.sychronized在执行完相应代码块以后属于自动释放同步监视器,lock需要手动启动同步 建议优先使用lock->同步方法块->同步方法(在方法体之外) 实现Runnable对象被三个线程调用,
阅读全文
摘要:package savesingleton; /* 使用同步将单例模式中的懒汉式改写成线程安全的 @author zsben @create 2020-01-03 22:22 */ class Bank{ private Bank(){} private static Bank instance =
阅读全文
摘要:实现Runnable的同步方法 package synchronization.method; /* 用同步方法解决实现Runnable的安全问题 @author zsben @create 2020-01-03 13:48 */ class WindowRun implements Runnabl
阅读全文
摘要:实现Runnable的线程同步块 package synchronization.block; /* @author zsben @create 2020-01-03 13:48 创建三个窗口卖票,使用Runnable接口方式 1.问题:卖票过程中出现了重票,错票-->出现了线程安全问题 2.解决方
阅读全文
摘要:线程的常用方法 package thread; /* 测试Thread类中的常用方法: 1.start() 2.run():重写Thread方法,将线程要执行的操作声明在方法中 3.Thread.currentThread():静态方法,返回执行当前代码的线程 4.getName():获取当前线程的
阅读全文
摘要:第一种实现方式:继承Thread类,并实现run方法,这种情况下每个线程对象都有一个独立的run方法 package thread; /* @author zsben @create 2020-01-03 9:52 多线程创建的第一种方法:继承于Thread类 1.创建一个继承于Thread的类 2
阅读全文
摘要:1.所有的异常都是从Throwable继承而来的,是所有异常的共同祖先。 2.Throwable有两个子类,Error和Exception Error:错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟
阅读全文
摘要:/* * java运行内存: * 堆(heap):存储的全是对象,每个对象都包含一个与之对应的class信息 * 只有一个heap,被所有线程共享,heap中不存放基本数据类型和对象引用,只放对象本身 * 栈:每个线程都有属于自己的栈(用户态栈),栈中保存基本数据类型的对象和自定义对象的引用,这个引
阅读全文
摘要:package proxy; /* * 代理模式:把原对象(被代理类)的一些功能交给代理类处理 * * 安全代理:屏蔽真实角色的直接访问 * 远程代理:通过代理类处理远程方法调用RMI * 延迟加载:先加载轻量级代理对象,需要时通过代理对象再加载真实对象 * 动态生成代理类( 需要反射 ),静态生成
阅读全文
摘要:package block; /* * 类的代码块(初始化块) * 1.代码块作用:用来初始化类,对象 * 2.可以用static修饰后成为静态代码块 * 3.分类:静态代码块 和 非静态代码块 * * 静态代码块: * >随着类的加载而执行,只执行一次 * >作用:初始化类信息 * >多个静态代码
阅读全文
摘要:抽象类及创建匿名子类对象 package abstracttest; /* * 抽象类的匿名子类 * * */ abstract class Person { String name; int age; public Person(String name, int age) { super(); t
阅读全文
摘要:包装类的定义,自动装箱拆箱 包装类,基本类型,string类之间的相互转化 package wrapper; import org.junit.Test; /* * 包装类的使用: * 1.八种基本数据类型对应八种包装类 * 2.基本数据类型,包转类,string的转化 * * * */ publi
阅读全文
摘要:想了下dp的做法感觉不太行,我也只配做div3了哎 求最小值的策略:前面没有就把当前的所有人都移到后面去,前面有人就挪到前面去 求最大值的策略:前面没有就挪一个到前面,然后考虑当前位置,下一个位置 /* dp[i][0]表示向前移动了,dp[i][1]表示不动,dp[i][2]表示后移 */ #in
阅读全文
摘要:借助棋盘来解题确实很妙,将本题柱形图放在棋盘上,然后答案就是数量最少的格子, 显然,假设黑格<白格,那么每个黑格必定有一个白格与之对应 感觉自己好迷,这题用dp想了半天,哎 /* dp[i][0|1]表示当前填满,留下一格的最优解 */ #include<bits/stdc++.h> using n
阅读全文
摘要:/* 结果肯定和 逆序对数量有关,假设当前求第k个答案: 如果1-k元素连续,则只要求出1-k的逆序对个数即可 如果不连续,那么先把这k个元素移动到一起,然后再求逆序对 移动的策略是二分找中间位置p,p左边的元素数量=p右边的元素数量 所以用线段树去维护当前已经存在的点位置 每次求答案:二分找位置p
阅读全文
摘要:对前k+1个数询问k+1次即可,询问结果只会有两个数:第m个和第m+1个,较大的数出现次数就是m次 #include<bits/stdc++.h> using namespace std; #define N 505 map<int,int>mp; int a[N],n,k,m; void ask(
阅读全文
摘要:/* d = (xa-xb)^2+(ya-yb)^2 01010101 10101010 01010101 10101010 按棋盘分组,0为白格,1为黑格 同组的情况:(xa-xb)奇数,那么(ya-yb)必为奇数 (xa-xb)偶数,那么(ya-yb)必为偶数 所以 d 最后必定是偶数 异组的情
阅读全文