java
kururunga
这个作者很懒,什么都没留下…
展开
-
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
最近把androidstudio 浏览器项目更新到gradle7.0.3除了一些问题。如在这个版本java 8已经不行了,得用java11,下载个java11配置一下就行。gradle jdk选择11就完事。原创 2021-10-21 23:27:28 · 276 阅读 · 0 评论 -
Android性能调优之Copyonwrite
写入时复制(CopyOnWrite)思想 写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种优化策略。其核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此做法主要的优点是如果调用者转载 2020-12-21 10:49:51 · 233 阅读 · 0 评论 -
Android注解元注解详解之带你生成简易版Butterknife
首先什么是注解?@Override就是注解,它的作用是:1、检查是否正确的重写了父类中的方法。2、标明代码,这是一个重写的方法。1、体现在于:检查子类重写的方法名与参数类型是否正确;检查方法private/final/static等不能被重写。实际上@Override对于应用程序并没有实际影响,从它的源码中可以出来。2、主要是表现出代码的可读性。Override作为Android开发中熟知的注解,Override只是注解的一种体现,更多时候,注解还有以下作用:降低项目的耦合度。自动完成一些规原创 2020-12-14 16:24:35 · 154 阅读 · 0 评论 -
JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclared原创 2020-12-14 16:07:34 · 215 阅读 · 0 评论 -
Java Condition类
接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。那么引入本篇的主角,Condition,Condition 将 Obje转载 2017-10-24 11:51:53 · 673 阅读 · 0 评论 -
Java线程中断
一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了那么不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢?一个比较优雅而安全的做法是:使用等待/通知机制或者给转载 2017-10-24 15:01:03 · 155 阅读 · 0 评论 -
java线程之间的通信(等待/通知机制)
线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照代码一步步的执行直到终止。但是,每个运行中的线程,如果仅仅是孤立地运行,那么没有太大的价值,但如果多个线程能够相互配合完成工作,这将会带来巨大的价值。而java多线程的等待和通知机制就是用来完成线程之间的通信。一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。前者是生产者转载 2017-10-24 15:18:25 · 235 阅读 · 0 评论 -
Java 强引用 弱引用 软引用 虚引用
Java四种引用包括强引用,软引用,弱引用,虚引用。强引用:只要引用存在,垃圾回收器永远不会回收 Object obj = new Object(); //可直接通过obj取得对应的对象 如obj.equels(new Object()); 而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。软引用:非必须转载 2017-10-16 14:32:53 · 144 阅读 · 0 评论 -
Http中get和post请求
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1.根据HT转载 2017-10-25 13:49:59 · 301 阅读 · 0 评论 -
java int与integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象1.Java 中的数据类型分为基本数据类型和复杂数据类型int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.2.初始化时: int i =1;Integer转载 2017-11-16 09:38:05 · 1507 阅读 · 0 评论 -
子类转型成父类,当父类是接口或者类的情景分析
今天打算动手写mvp项目的时候,发现了一个问题,presenter在v中也是以接口的形式存在,如在类中的成员变量里声明一个接口类型的presenter(如:private LoginPresenter presenter),而在Activity的onCreate中调用时将其重新赋值(presenter = new LoginPresenterImpl();进行向上转型,此时我的疑问是,当调用pr原创 2018-01-19 14:12:21 · 421 阅读 · 0 评论 -
Android关于不确定recycleview+checkbox的选择事件处理
如图,列表中的字符串是从服务器获取的,数量也可能随时改变,需要做成如图的样式,并且选择权限完进行提交修改 下面是返回的数据;{"state": 1,-"data": [-{"id": 1,"permission": "开桌","shopid": 306},-{"id": 2,"permission": "买原创 2018-08-23 10:31:07 · 718 阅读 · 0 评论 -
javaee人人开源renren-fast学习之路
开始兼做javaee,配置intelj开发环境,导入人人开源配置虽然简单但发生了很多问题。1.从git上下载代码,然后用intelj Open即可,等导入后他还会进行下载之类的2.创建数据库 renren_fast ,数据库编码为 UTF-8执行 doc/db.sql 文件,初始化数据(默认支持MySQL)修改 application-dev.yml ,更新MySQL账号和密码运行 i...原创 2019-02-28 10:54:25 · 1461 阅读 · 0 评论 -
关于Eclipse开发java的一些小问题
1.jsp文件使用alt+/ 不适用quickfix(ctrl+1) 不过要在刚写完类名后敲alt+/ ;如Person (alt+/) person=newPerson();即在Person光标后后敲alt+/ 才生效。Ctrl+1对jsp文件不生效,java文件才行...原创 2019-02-20 10:24:29 · 132 阅读 · 0 评论 -
Java后台入坑二:renrenfast后台打包和前端打包运行
公司用的项目是renrenfast,今天中午在大佬帮助下学了下服务器打包和前端环境搭建和打包运行。1.后台打包:我用的是intelj:步骤如下:点开右侧的Maven然后点install等待完成能得到一个路径,一般是在项目的target目录即可找到jar,然后命令java -jar renren-fast.jar然后用浏览器访问http://localhost:8080/renren...原创 2019-03-25 18:01:00 · 2735 阅读 · 0 评论 -
Java正则表达式常用式子
一、校验数字的表达式1 数字:^[0-9]*2n位的数字:\dn 2 n位的数字:^\d{n} 3 至少n位的数字:^\d{n,}4m−n位的数字:\dm,n 4 m-n位的数字:^\d{m,n} 5 零和非零开头的数字:^(0|[1-9][0-9]*)6非零开头的最多带两位小数的数字:([1−9][0−9]∗)+(.[0−9]1,2)? 6 非零开头的最多带两位小数的数字:^([1转载 2017-10-14 11:13:35 · 308 阅读 · 0 评论 -
TCP/IP基础知识
TCP/IP基础知识 第一部分 TCP/IP基础知识TCP/IP分层及各层主要协议数据链路层:SLIP、PPP网络层:IP、ARP、RARP、ICMP传输层:TCP、UDP应用层:FTP、TELNET、SMTP、HTTP、TFTP=====================这部分与宇航出版社的《Microsoft Windows NT4.0 环境下的TCP/IP网络互联转载 2017-10-23 11:22:22 · 556 阅读 · 0 评论 -
java 域
field,域是一种属性,可以是一个类变量,一个对象变量,一个对象方法变量或者是一个函数的参数。当Sub对象转型为Super引用时,任何域访问操作都将由编译器编译,因此不是多态。原创 2017-10-12 18:02:44 · 315 阅读 · 0 评论 -
阅读笔记常见的设计模式之三:备忘录模式的简单理解
先看下下面程序:public class LOL{ private int mMoney=0; private String mHero=”德玛”; private String mName=”英雄联盟”public void play(){ syso(“进入游戏:”+mMonet+”厉害了”); mMoney++; syso(” “+mHero+”厉害了”); }public voi原创 2017-09-21 10:25:47 · 296 阅读 · 0 评论 -
关于return的两个小例子
public class Return_Demo { static int i=3; public static void main(String[] args) { if (i==3) { return; System.out.println(” ok”);//报错,不会输出 }原创 2017-03-03 10:22:36 · 554 阅读 · 0 评论 -
Java不同类方法的调用以及static方法小解
虽然很基础,但我还是写一下. 定义两个类:TestMethod和TestMet,TestMethod内容如下: package test; public class TestMethod { public static void main(String[] args) { TestMet testMet=new TestMet(); testMet原创 2017-03-09 11:12:02 · 9257 阅读 · 0 评论 -
堆和栈的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈转载 2017-09-28 11:15:27 · 254 阅读 · 0 评论 -
Android Java小知识点集锦
1.在JAVA中怎么清空StringBuffer变量内容StringBuffer my_StringBuffer = new StringBuffer();my_StringBuffer.append(‘helloworld’); //添加字符串到StringBuffer中int sb_length = my_StringBuffer.length();// 取得字符串的长度 my_Str原创 2017-09-27 16:29:28 · 544 阅读 · 0 评论 -
三次握手与四次挥手
参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将转载 2017-09-28 16:36:50 · 326 阅读 · 0 评论 -
Android和Java一些知识点小结
1.在JAVA中怎么清空StringBuffer变量内容StringBuffer my_StringBuffer = new StringBuffer();my_StringBuffer.append(‘helloworld’); //添加字符串到StringBuffer中int sb_length = my_StringBuffer.length();// 取得字符串的长度 my_Str原创 2017-09-12 17:53:08 · 732 阅读 · 0 评论 -
TCP/IP 三次握手与四次挥手的理解
其实很好理解 (1)客户端(主机A)要和服务器(主机B)进行连接,那么客户端需要发送一个请求来请求建立连接 (2)服务器端接收到请求后需要进行确认客户端的请求,然后发送自己的建立连接请求给客户端 (3)客户端收到了服务器的确认请求和服务器的建立连接请求,再向服务器发送确认请求,完成三次握手,可以开始传输数据。 以人做比喻,比如两个异地的人怎么联系的呢?A想和B交流就像B发送沟通请求,B收到A原创 2017-10-08 22:10:14 · 200 阅读 · 0 评论 -
抽象类和接口
抽象类和接口的区别 抽象类里面可以有非抽象的方法,接口里只能有抽象方法。 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号。抽象类(abstract class): a.抽象类是仅供派生的类,无法实例化一个抽象类,只能实例化从它派生的类。 b.抽象类的主要特征在于它包含抽象成员(abstract member),抽象成员是不具有实现的一个方法或属性,其作用是强制所有派生类转载 2017-10-08 15:06:21 · 263 阅读 · 0 评论 -
Java 自动拆装箱
什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样:Class a = new Class(parameter);当我们创建一个Integer对象时,却可以这样:Integer i = 100; (注意:不是 int i = 100; )实际上,执行上面那句代码的时候,系统转载 2017-10-11 15:36:46 · 203 阅读 · 0 评论 -
AtomicInteger类的理解与使用
AtomicInteger类的理解与使用首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:public class Sample1 {private static Integer count = 0;synchronized public static void increment() { count++;}}123456789以下是A转载 2017-10-20 14:18:43 · 251 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一转载 2017-10-20 16:50:49 · 152 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别
无论是做Java或是Android,都避免不了遇到这个问题,其实开发过程中一般情况下是不会纠结,这个问题是面试必选经典题,今天有时间,就总结一下。String、StringBuffer、StringBuilder区别StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都 会引发新的String对象的生成;Stri转载 2017-10-20 18:07:39 · 162 阅读 · 0 评论 -
Java Timer类
使用java中的Timer实现任务调度的核心类是Timer和TimerTask。其中Timer负责设定TimerTask的起始与结束时间。使用者只需要创建一个TimerTask的继承类,实现自己的run方法,然后将其丢给Timer去执行。(如下实例:)package com.yc.quartz.example;import java.util.Timer;import java.util.Time转载 2017-10-21 15:09:48 · 320 阅读 · 0 评论 -
Java synchronized简要总结
synchronized修饰的方法,记住: 1.非静态方法 同步锁synchronized无论是用于方法(synchronized method)还是类(synchronized class) (1)如果该类对象是唯一的,比如//..省略两个被同步锁修饰的test1和test2方法和main方法和类名testsynfinal testsyn myt = new testsy原创 2017-03-09 10:08:01 · 281 阅读 · 0 评论