avatar
文章
71
标签
53
分类
24

首页
归档
标签
分类
图库
友人
Jamie793’ S Blog
搜索
首页
归档
标签
分类
图库
友人

Jamie793’ S Blog

Android微信支付的坑
发表于2021-07-07|程序设计Android
事情是这样的我接了个单子就是写微信登陆和支付的 一开始我接单子的时候想之前都写过qq登录微信也应该差不多结果我错了首先遇到的坑有 sdk的配置他是把sdk放到了maven远程仓库然后直接compile但是我as抽风好了许久最终下载了官方的demo找到了jar直接copy到工程文件夹里了 我边写边吐槽写文档的开发者乱七八糟后来我看着官方demo改的终于成功了。于是就有了这篇文章 登录的class名称必须是WXEntryActivity并且继承activity实现IWXAPIEventHandler接口否则无法回调 然后剩下的直接上图了 微信登录和qq登录不同他是先把回调返回来的code进行发送请求获取access_token但access_token有效期只有两小时 我这里登录只需要用户的openid和nickname所以我没有获取有效期一个月的access_token详细见官网 这里也没有api判断是否登录全部得自己写所以写这个微信登陆的时候很恼火别看代码那么简单实现写起来真的是各种坑这是最坑的地方不仅class要WXEntryActivity还要在wxapi包下所以要新建一个 ...
【Java多线程】线程安全问题
发表于2021-07-07|程序设计Java
首先什么是线程安全问题? 答:当多个线程同时修改做写操作的时候可能受到其他线程的干扰导致数据出现问题这种现象叫做线程安全问题 举个例子比如火车票自动售票机,原本有100张票分别有两个售票机进行判断票数是否大于0,如果票数大于0就把票出售给乘客,但当两个售票机同时读取这个变量的时候第一个判断大于0就售出了但第二个判断也大于0但前面第一个线程已经把票售出了所以此时是0张票这个时候就可能出现了-1张票,或者售出了同一张票 12345678910111213141516171819202122232425262728293031323334353637public class ThreadTest implements Runnable { private int trainCount = 100; @Override public void run() { while (trainCount > 0) { try { Thread.sleep(500); ...
【Java多线程】使用同步代码块解决线程安全问题
发表于2021-07-07|程序设计Java
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141public class ThreadTest implements Runnable { private int trainCount = 100; private Object lock = new Object();//实例化一个对象当作锁 @Override public void run() { wh ...
【Java多线程】函数锁,证明是this锁
发表于2021-07-07|程序设计Java
函数所非常简单 只需要在函数定义的时候加上synchronized关键字就可以了 那么synchronized用的是什么锁呢 答:this锁,怎么知道他是this锁的呢 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157public class ThreadTest implements Runnable { ...
【Java多线程】死锁
发表于2021-07-07|程序设计Java
死锁就是:一个宝藏需要两把钥匙来打开,同时间正好来了两个人,他们一人一把钥匙,但是双方都再等对方能交出钥匙来打开宝藏,谁都没交出自己的那把钥匙.就这样这俩人一直僵持下去,直到开发人员发现这个局面. 123456789101112131415161718192021222324252627282930313233343536373839404142public class ThreadTest implements Runnable { private int trainCount = 100; private final Object lock = new Object(); public boolean flag; @Override public void run() { while (true) { if (flag) { synchronized (lock) { sell1(); ...
【Java多线程】内存模型/volatile /Atomic原子类
发表于2021-07-07|程序设计Java
多线程的三大特性 原子性 独一无二,一致性 保证线程安全问题 可见性 java内存模型图 有序性 join,wait,notify 什么是java内存模型? 答:(属于)多线程可见性jmm java内存结构是jvm内存分配 Java内存模型,决定了一个线程与另一个线程是否可见 java内存模型 主内存,本地私有内存 1234567891011121314151617181920212223242526272829public class ThreadDemo extends Thread { private boolean flag = true; @Override public void run() { super.run(); System.out.println("Thread starting run"); while (flag) { } System.out.println("Thread Stop"); ...
【Java】NIO学习笔记
发表于2021-07-07|程序设计Java
缓冲区 Java NIO中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据 根据数据类型不同(Boolean)除外,提供了相应类型的缓冲区; ByteBufer CharBuffer ShortBuffer1 IntBuffer LongBuffer FloatBuffer DoubleBuffer 上面的缓冲区管理方式几乎一致,通过allocate方法获取缓冲区 缓冲区的核心方法 put();存入数据到缓冲区 get();获取缓冲区中的数据 flip();切换到读取数据模式 rewind(); clear();恢复成最初状态,但里面的数据依然存在 mark();在当前position进行标记 reset();恢复到mark的位置 hasRemaining();查看缓冲区是否还有数据 remaining();缓冲区还剩几个字节没有读取 缓冲区的属性 capacity : 容量,表示缓冲区中最大存储数据的容量。一旦声明不能改变。 limit : 界限,表示缓冲区中可以操作数据的大小。(limit后的数据不能进行读写) position : 位置,表示缓冲区正在操作数据的位置。 ...
【Linux&Java】Linux中安装JDK
发表于2021-07-07|程序设计其他LinuxJava
使用yum进行安装 123456789#查看所有jdk版本yum -y list java*#找到jdk1.8版本的名称yum install -y jdk版本名#然后进行环境变量的配置,看我之前的文章#测试是否安装成功java -version 手动安装 手动安装的方式比较推荐,可以安装的自己指定的目录 首先去甲骨文官网下载jdk1.8的版本 下载好后解压出来然后再进行环境变量的配置 最后输入javac 检测是否安装成功
【Linux&Maven】Linux中安装Maven
发表于2021-07-07|其他Linux运营维护
1、下载maven 首先到官网复制下载地址,如果服务器是国内的话请挂v下载后上传到linux服务器中否则无法进行下载,如果是国外的服务器则使用下面的代码进行下载 1curl -O http://us.mirrors.quenda.co/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 2、安装maven,【Linux】Linux中设置环境变量 123456789101112131415161718192021222324#解压包tar -xzvf apache-maven*.tar.gz#切换到目录中cd apache-maven*#把路径添加到环境变量中,看我之前的文章#获取当前的路径pwdvim ~/.bashrc#添加这几行代码MAVEN_HOME=刚刚获取到的路径export PATH=$MAVEN_HOME:$MAVEN_HOME/bin:$PATH#保存后使用source命令进行更新source ~/.bashrc#更新后输入mvn查看是否安装成功#[INFO] Scanning for pr ...
二进制中原码、反码和补码
发表于2021-07-07|程序设计
1、机器的存储编码方式 首先要知道机器是使用补码进行存储数据的 2、什么是原码、反码和补码 什么是原码?首先我们知道int是占4个byte字节的,每个字节占8bit位,所以4*8=32得出int是占了32bit 比如2的二进制是10,而-2的二进制是11111111 11111111 11111111 11111110这里可以看到2的二进制只有两位而-2的二进制呢却有32位这里-2的二进制才是真的原码而10并不是原码其实10前面还有32个0因为都是0所以省略了,所以2的原码是00000000 00000000 00000000 00000010即:-2等于~2=11111111 11111111 11111111 11111110 什么是反码? 从上面2和-2的二进制可以看出来,正数的反码是他本身而负数的反码是在原码的基础上除符号位以外其他取反如: 00000000 00000000 00000000 00000010左边第一个0就是符号位了,当符号位是0时时正数而则1时负数 看符号位知道是正数所以他的反码就是他本身也就是00000000 00000000 00000000 0000 ...
1…678
avatar
Jamie793
Welcome to here
文章
71
标签
53
分类
24
Contact Me
最新文章
MC(JE) 1.20.1源码层分析刷怪机制——解决无法刷怪问题2025-05-05
【单片机FreeRTOS】RTOS移植常见错误2024-11-06
【RTOS&FreeRTOS&嵌入式】基于STM32 的FreeRTOS内核剖析2023-09-03
【STM32&I2C(IIC)&Proteus】基于STM32的Proteus下I2C仿真2023-04-20
【ESP32 & Arduino】ESP32入门之环境安装2022-11-23
分类
  • CTF7
    • Crypto2
    • Reverse5
  • 其他16
    • Linux8
    • 软件配置5
    • 运营维护8
  • 单片机3
  • 嵌入式2
    • RTOS1
    • 单片机1
  • 未分类1
  • 程序设计44
    • Android7
    • C++12
    • Java10
    • PHP7
    • Python8
  • 软件配置1
  • 运营维护1
标签
74HC165 Android AndroidStudio Android逆向 Androlua Arduino C++ CTF Crypto ESP32 FreeRTOS Git IDA Idea Java JetBrains Linux MCU51 Misc NIO Nginx Office PC逆向 PHP Proteus Python RTOS Redis Reverse SQLMap STC89C52 STM32 Scrapy Tomcat Typecho VM保护 Web bug 内存模型 内存补丁
归档
  • 五月 20251
  • 十一月 20241
  • 九月 20231
  • 四月 20231
  • 十一月 20221
  • 十月 20221
  • 八月 20221
  • 七月 20223
网站资讯
文章数目 :
71
已运行时间 :
本站总字数 :
71.4k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Jamie793
框架 Hexo|主题 Butterfly
搜索
数据库加载中