自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 JavaMail实现向QQ邮箱发送邮件

这是JavaMail的hello world级别程序前期准备需要两步:1:下载jar包:javax.mail.jarhttps://github.com/javaee/javamail/releases2:在 QQ 邮箱里的 设置->账户里开启 SMTP 服务点击开启,发送邮件后,会得到一个验证码,代码中需要该验证码,以供验证,SMTP(simple mail transferprotocol),3:代码package Mail;import java...

2021-08-06 00:14:34 561

原创 Springboot的常见注解以及作用

1:@SpringBootApplication一个组合注解,主要核心配置是@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan三个注解 ,因此该注解集配置,自动装配还有组件为一体,是springboot的启动类。2:@ResponseBody方法上加入该注解后,return的值不再是跳向XXX.jsp之类的界面,而是将返回的值封装成成json格式发送给页面,一般和@RequestMapping搭配使用3:@Cont

2021-07-30 08:13:53 342

原创 Java中如何拼接sql

拼接规则示例java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量。例如:查询数据库中的用户名和密码。注:为和sql表中的username和password字段相区别,我们在java中定义String变量分别为user_name和pass_word// 正确结果String sql = "select * from user where username = '"+user_name+"'and password = '"

2020-12-22 10:10:19 4344 1

原创 开机后数据连接建立流程

DcTracker.java1, 初始化时调用 update()→ onUpdateIcc() newIccRecords.registerForRecordsLoaded( this, DctConstants.EVENT_RECORDS_LOADED, null);注册 handler eve...

2019-12-02 16:34:14 322

原创 DcTracker中关于插卡后apn的流程

DcTracker流程1:oncreate()1-1:mUiccController = UiccController.getInstance();mUiccController.registerForIccChanged(this, DctConstants.EVENT_ICC_CHANGED, null);//监听SIM卡的变化,如果变化会发送EVENT_ICC_CHAN...

2019-11-27 16:41:38 839

转载 Android编码规范(转载)

工作中经常会查看源码,在对安卓的编码规范进行了较好的了解以后,能够帮助大家更好的阅读代码,比如一看到m开头的变量,就知道这是一个成员变量。1,常见类名命名规则2,控件变量建议使用控件缩写+逻辑名称,例如btnLogin或者btn_login.常见控件变量缩写如下3方法命名4,布局文件以对应的类别名在前面,逻辑在后面,用下划线连接5,drawable中的文件命...

2019-11-19 15:03:38 162

原创 初识shell

之前没有接触过shell,但是在工作中经常会遇到shell脚本的运行,主要是在编译代码的时候./TCD.....简单来说she'll脚本就是“对一堆linux命令的逻辑化处理“学习任何语言都要从hello word开始shell的hello Word流程如下1:新建一个hello.sh:touch hello.sh。其中sh的拓展名代表的是shell,我经常遇到的也基本...

2019-11-15 14:39:54 113

原创 认识使用git时的冲突如何产生

将远程的代码cherry-pick(或者是git pull)下来到本地的时候,有时候会出现冲突,产生冲突的原因,主要常见的有以下几种情况:1,双方修改了同一个代码文件2,对于我们安卓开发人员来说,不同的的版本,同一个文件也会出现不同(本质上也是代码被另一个人修改了)总之,在远程代码和我们本地代码版本有双方的修改的时候,就会出现冲突。既然经常遇见冲突,我们就要了解冲突并且解决,冲...

2019-11-15 10:32:04 414

原创 xmlns的简单理解

xmlns每一个xml文件里面都有,但是挺多玩家都不怎么关注。首先xmlns是xml namespace的缩写,叫做xml命名空间.在安卓xml中的使用是:xmlns:前缀(最常用android)=http://schemas.android.com/apk/res/应用程序包路径;在xmlns定义后,所有带有相同前缀(比如android)的子元素都会与同一个xmlns相关联。避免xm...

2019-11-13 15:54:34 1805

原创 安卓四大组件(小白篇)

安卓的四大组件分别是: 1,活动activity,用于表现服务; 2,服务service,后台运行服务,不提供界面呈现; 3,广播接受者(broadcast receive),用于接受广播; 4,内容提供者(content provider),支持在多个应用中存储和读取数据,相当于数据库。1,Activity(1)定义:四大...

2019-11-11 10:54:56 1284

原创 thinking in java (四十四) ----- 多线程10之线程优先级和守护线程

线程优先级的介绍线程优先级有1-10,默认优先级为5,高优先级的线程更容易抢占到CPU,但是并不绝对java中有两种线程,用户线程和守护线程,可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。用户线程一般用户执行用户级任务,而守护线程也就是“后台线程”,一般用来执行后台任务。需要注意的是:Java虚拟机在“用户线程”都结...

2018-11-20 20:13:30 133

原创 thinking in java (四十三) ----- 多线程09之interrupt()和线程终止方式

 interrupt和线程终止简介interrupt()的作用是中断本线程jdk中关于interrupt的简介是:本线程中断自己是被允许的,其他线程调用本线程的interrupt方法,会通过checkAccess()检查权限,这有可能抛出SecurityException异常,如果线程是处于阻塞状态,调用线程的wait,join,sleep等进入阻塞状态,此时用interrupt中断该...

2018-11-20 19:52:56 125

原创 thinking in java (四十二) ----- 多线程08之join

join()介绍join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行,阻塞主线程// 主线程public class Father extends Thread { public void run() { Son s = new Son(); s.start(); ...

2018-11-20 17:02:39 131

原创 thinking in java (四十一) ----- 多线程07之线程休眠

sleep()介绍sleep()定义在Thread类中,作用是让当前线程休息,即当前线程会从运行状态转为阻塞状态吗,sleep会规定时间,线程休眠的时间大于该时间,就会被重新唤醒,变成就绪状态,等待CPU的调度执行示例package test;//SleepTest.java的源码class ThreadA extends Thread{ public ThreadA(...

2018-11-20 16:28:24 129

原创 thinking in java (四十) ----- 多线程06之线程让步

yield()介绍yield()作用是线程让步,他能让线程由运行状态进入就绪状态,从而让具有相同优先级的等待线程获取执行权。但是并不能保证当前线程让步以后,具有同优先级的线程一定能获取执行权,也有可能是当前让步线程又进入到“运行状态”继续运行示例// YieldTest.java的源码class ThreadA extends Thread{ public Thre...

2018-11-20 16:02:13 131

原创 thinking in java (三十九) ----- 多线程05之线程等待和唤醒

wait() notify()notifyAll()简介这三个方法都是定义在Object里面,wait()的作用是让线程进入等待状态,同时wait也会释放当前线程所持有的锁,而notify和notifyAll的作用是唤醒当前对象上的等待线程,notify是唤醒单个线程,而notifyAll 是唤醒所有线程。Object中关于等待唤醒的API详细信息如下:notify() 唤醒在此对...

2018-11-20 15:40:51 115

原创 thinking in java (三十八) ----- 多线程04之synchronized关键字

synchronized原理在java中,每一个对象有且只有一个同步锁,这也意味着,同步锁因为对象而存在。当我们调用某对象的synchronized方法时,就获取了该对象的同步锁,例如synchronized(obj)就获取了obj这个对象的同步锁。不同线程对同步锁的访问是互斥的,就是说,在某一个时间点,一个同步锁只能被一个线程获取,通过同步锁我们可以在多线程中,实现线程的互斥访问...

2018-11-20 08:57:23 139

原创 thinking in java (三十七) ----- 多线程03之Thread中start()和run()的区别

start()方法和run()方法的区别说明start()方法:他的作用是启动一个新的线程,新线程会执行相应的run()方法,start()不能被重复调用。run()方法:run方法就是一个普通的成员方法样,可以被重复调用,单独调用run方法的话,会在当前线程中执行run方法,而不会启动新线程。用代码说明class MyThread extends Thread{ ...

2018-11-19 19:54:56 110

原创 thinking in java (三十六) ----- 多线程02之常用的实现多线程的方法

概要常用的实现多线程有两种方法,1:继承Thread类,2:实现Runnable接口。之所以说是常用,是因为还可以使用JUC(java.util.concurrent)包中的线程池来实现多线程。首先我们对常用的Thread类和Runnable接口进行了解说明。Thread类和Tunnable接口简介Runnable是一个接口,该接口中只包含了run方法,定义如下pub...

2018-11-19 17:02:21 180

原创 thinking in java (三十五) ----- 多线程01之基础概念

相关概念线程状态图说明:一共有五种状态1,新建状态:线程对象被创建以后,自动就进入了新建状态,比如Thread thread = new Thread()2,就绪状态:线程对象被创建以后,其他线程调用了该对象的start方法,从而来启动该线程,例如,thread.start(),处于就绪状态的线程,随时都可能被CPU调度执行3,运行状态:线程获取了CPU权限,进行执行,需要...

2018-11-19 13:01:06 91

原创 thinking in java (三十四) ----- StringBuffer详解与StringBuilder一笔带过

StringBuffer是线程安全的可变字符序列,他继承于AbstractStringBuilder,实现了CharSequence接口,StringBuilder也是继承于AbstractStringBuilder的子类,但是线程不安全。关系图:StringBuffer源码1,定义public final class String implements java.io...

2018-11-16 16:55:01 138

原创 thinking in java (三十三) ----- String详解

String介绍String是java中的字符串,继承于CharSequence。String类包含的API接口非常多,我们对其进行了分类,并且都给出了演示程序。String个CharSequence关系String继承于CharSequence,也就是说String是CharSequence类型,CharSequence是一个接口,只包括length().charAt(),su...

2018-11-16 12:28:41 140

原创 thinking in java (三十二) ----- IO之 PrintWriter

介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintWriter用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。源码package java.io;import java.util.Objects;import java.util.Formatter;import java.u...

2018-11-13 12:04:39 110

原创 thinking in java (三十一) ----- IO之 BufferedWriter

介绍BufferedWriter 是缓冲字符输出流。它继承于Writer。BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能。源码分析package java.io;public class BufferedWriter extends Writer { // 输出流对象 private Writer out; // 保存...

2018-11-13 11:44:22 139

原创 thinking in java (三十) ----- IO之 BufferedReader

BufferedReader介绍BufferedReader是缓冲字符流,继承于Reader作用是为其他的流添加缓冲功能源码分析package java.io;public class BufferedReader extends Reader { private Reader in; // 字符缓冲区 private char cb[];...

2018-11-13 11:37:35 174

原创 thinking in java (三十) ----- IO之 FileReader和FileWriter

介绍FileReader是用于读取字符流的类,继承于InputStreamReader,如果要读取原始字节流,需要使用InputStream。FileWriter是用于写入字符流的类,继承于OutputStreamWriter,如果要写入原始字节流,需要使用OutptuStream。源码FileReaderpackage java.io;public class ...

2018-11-13 10:07:46 146

原创 thinking in java (二十九) ----- IO之 InputStreamReader和OutputStreamWriter

InputStreamReader和OutputStreamWriter介绍InputStreamReader和OutputStreamWriter是字节通往字符的桥梁,它使用指定的charset读取字节并将其解码为字符。InputStreamReader的作用是将字节输入流转换为字符输入流,继承于Reader OutputStreamWriter的作用是将字节输出流转换为字符输出...

2018-11-12 23:54:54 135

原创 thinking in java (二十八) ----- IO之PipedReader和PipedWriter

PipedReader和PipedWriter介绍PipedWriter是字符管道输出流,继承于WriterPipedReader是字符管道输入流,继承于Reader PipedReader和PipedWriter的作用是可以通过管道之间进行线程间的通讯,在使用管道的时候,必须将两者配套使用PipedReader和PipedWriter源码分析PipedReader源码...

2018-11-12 19:59:27 154

原创 thinking in java (二十七) ----- IO之CharArrayWriter(字符数组输出流)

CharArrayWriter介绍用于写入字符数据,继承于writer,操作的是单位为字符。源码分析CharArrayWriterpackage java.io;import java.util.Arrays;public class CharArrayWriter extends Writer { // 字符数组缓冲 protected char...

2018-11-12 18:58:09 119

原创 thinking in java (二十七) ----- IO之CharArrayReader(字符数组输入流)

CharArrayReader介绍CharArrayReader是字符输入流,用于读取字符数组,它继承于Reader,操作的数据是字符为单位。源码分析Reader是CharArrayReader的父类,我们先看一下Reader的源码,然后再分析CharArrayReader。Reader源码package java.io;public abstract class...

2018-11-12 16:49:15 152

原创 thinking in java (二十六) ----- System.out.println("hello world")原理

我们首先来看System.out.println("hello world")的流程,先看看System类中out的定义public final class System { ... public final static PrintStream out = null; ...}从中,我们可以发现:1,out是System中的一个静态变量2,out是...

2018-11-12 15:54:12 613

原创 thinking in java (二十五) ----- IO之PrintStream

PrintStream介绍PrintStream是打印输出流,继承自FilterOutputStream,PrintStream用来装饰其他的流,为其他流添加打印功能,使其能够方便打印各种数据表现形式。与其他流不同,PrintStream永远不会抛出IOException,他产生的IOException会被自身的函数所捕获并设置错误标记,另外,PrintStream提供了自动flu...

2018-11-10 20:17:09 125

原创 thinking in java (二十四) ----- IO之BufferedOutputStream

BufferOutputStream介绍BufferOutputStream是缓冲输出流,它继承于FilterOutputStream。BufferOutputStream的作用是另一个输出流提供“缓冲功能”。源码分析package java.io;public class BufferedOutputStream extends FilterOutputStream...

2018-11-10 19:44:57 447

原创 thinking in java (二十四) ----- IO之BufferedInputStream

BufferedInputStream介绍BufferedInputStream是缓冲输入流,作用是为另外一个输入流添加缓冲功能,以及mark reset功能。本质上,缓冲功能是通过一个内部缓冲区数组实现的,例如在新建某输入流对应的BufferedInputStream后,当我们通过read方法读取输入流的数据时,BufferedInputStream会将输入流的数据分批地填入到缓冲区...

2018-11-10 12:38:49 156

原创 thinking in java (二十三) ----- IO之FileDescriptor

FileDescriptor简介FileDescriptor是文件描述符FileDescriptor可以被用来表示开放文件,开放套接字等以FileDescriptor表示文件来说,当FileDescriptor表示某文件的时候,我们可以通俗地将FileDescriptor看成是该文件,但是我们不能直接通过FileDescriptor来操作该文件,如果需要通过FileDescript...

2018-11-08 09:59:27 124

原创 thinking in java (二十二) ----- IO之序列化

序列化的作用和用途序列化,就是为了保持对象的状态,而与之对应的反序列化,则可以把对象的状态再读取出来,简而言之:序列化/反序列化,是JAVA提供的一种专门用于保存/恢复对象状态的机制。一般在以下几种情况我们会使用序列化:1.当你想把内存中的对象状态保存到一个文件或者数据库中时2,当你想用套接字在网络上传送对象的时候3,当你想用RMI传输对象的时候演示程序1...

2018-11-02 16:08:20 98

原创 thinking in java (二十一) ----- IO之(ObjectOutputStream和ObjectInputStream)

ObjectOutputStream和ObjectInputStream的作用是:对基本数据和对象进行序列化操作支持。创建“文件输出流”对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对“基本数据或对象”的持久存储,当我们需要读取这些存储的基本数据或对象的之后,可以创建“文件输出流”对应的ObjectInputStream,进而读取出这些“基本数...

2018-11-02 10:03:57 93

原创 thinking in java (二十) ----- IO之管道(PipedOutputStream和PipedInputStream)

介绍PipedInputStream和PipedOuputStream管道输入流和管道输出流他的作用是让多线程可以通过管道进行线程间的通信,在使用管道通讯时候,必须将两者配套使用。使用管道的大致流程是:我们在进程A中向PipedOutputStream中写入数据,然后这些数据会自动发送到与PipedOutputStream对应的IPipedInputStream中,进而储存在Piped...

2018-11-01 21:53:13 180

原创 thinking in java (十九) ----- IO系列总览

io简介java io是为了实现“文件”,“控制台”,“网络设备”这些输入输出设备之间的通信而设计的系统。例如,对于一个文件,我们可以打开进行读取与输出。在java1.0的时候,java提供的类都是以字节(byte)为单位,到了java1.1,为了国际化,添加了许多以字符(Unicode)为单位进行操作的类IO中我们常说到的一个概念是“流”,所谓“流”就是一种抽象的数据总称,本质是为了...

2018-11-01 20:48:11 365

原创 thinking in java (十八) ----- 集合之Map(HashMap HashTable)总结

Map框架图Map概括Map是键值对映射的抽象接口 AbstractMap实现了Map中的大部分接口,减少了Map实现类的重复代码 HashMap是基于拉链法实现的散列表,一般使用在单线程程序中 HashTable是基于拉链法实现的散列表,一般使用在多线程程序中HashMap,HashTable异同共同点都是散列表,都是基于拉链法实现的存储的思想是:通过t...

2018-10-31 21:15:03 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除