我爱吃土豆

做人要像土豆一样,跟啥都能炖一起,咋整都不难吃。欢迎访问我的个人网站:https://itudo.cn
私信 关注
土豆是我的最爱
码龄4年

我的个人网站:https://itudo.cn

  • 846,484
    被访问量
  • 79
    原创文章
  • 4,126
    作者排名
  • 2,203
    粉丝数量
  • 于 2016-12-22 加入CSDN
获得成就
  • 获得1,149次点赞
  • 内容获得371次评论
  • 获得3,354次收藏
荣誉勋章
兴趣领域
  • #后端
    #Java#分布式#架构#Spring Boot#Redis#Linux#Spring#Python#MySQL
TA的专栏
  • ★★小白看懂系列★
    7篇
  • ★JAVA学习之路★
    64篇
  • ★Python学习之路
    2篇
  • ★★★数据库学习★
    6篇
  • ★JAVA面试汇总★
    32篇
  • ★★设计模式算法★
    12篇
  • ★★Android入门★
    8篇
  • ★★报错记录汇总★
    9篇
  • ★★项目测试入门★
    7篇
  • ★★纸上谈兵系列★
    2篇
  • ★★程序☀☁人生★
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

记录第一次参与高并发场景业务

目录业务场景项目难点1.发券并发问题2.支付宝技术对接3.服务器升级繁琐4.线上并发问题解决方案1.发券并发问题2.redis队列3.线程池异步4.多实例负载均衡项目收获业务场景上上周新启动了一个项目,是和支付宝合作的,活动流程大概是这样:支付宝侧会开发一个H5活动——品牌密室,用户可以在支付宝中搜到该活动,然后进行游戏互动,游戏后就可以领取券码,关注并进入生活号中进行券码的查看以及门店核销。我负责的部分主要是在用户领券并进入生活号的时候,我会收到支付宝的订阅消息请求,其中有支付宝用户id及其他信息,
原创
740阅读
0评论
1点赞
发布博客于 7 月前

小白都能看懂的HashMap面试问题

前言对于HashMap,可谓是面试必问的点。无论你是刚毕业的大学生,还是工作三年的高级开发工程师。HashMap可谓是JDK源码中比较经典的源码设计。在上学的时候就知道它的重要性,但是有一些比较复杂的地方当时很难理解,只是模糊记忆,面试官问的时候也是将记住的答案背下来,其实在面试官眼中早就露馅了。简单回顾一些基础的问题我们就简单回顾一下就好。其中要讲解的难点先标注,后文进行详细剖析。HashMap的内部数据结构数组 + 链表/红黑树HashMap允许空键空值么HashMap最多只允许一个键为
原创
7062阅读
16评论
64点赞
发布博客于 10 月前

电商系统(毕业设计)

前言公司项目开发目前用到的技术栈有SpringBoot、,MyBatis、Maven、MySql、Redis、Docker,Gitlab。其中除了docker会用了之外,其他的在学校做项目已经基本都用到了。所以在公司呆了一年多,除了业务熟悉了一些之外,技术栈方面并没有多大的长进。在公司也只接触到两个项目,好像简历上一般写三个,实在不行就拿毕业设计凑一下数吧,毕竟也才工作一年。这个项目是我在校招前夕和三个妹子花一个月时间完成的,完成了服务器后台及前端。后来毕业设计选题时和组员都想做电商主题,所以把
原创
1809阅读
1评论
8点赞
发布博客于 10 月前

项目经验——支付业务

前言月底就要离职走人了。在这个公司包括实习期的话也干了将近一年半了。好歹也算是一年工作经验了,下次面试的话应该也是问项目经验居多。准备近期先将自己自己做过的东西详细整理一下,方便到时候书写简历以及应对面试。支付业务刚到公司的时候,接触的是公司的一个B2B2C电商项目。当时的销售途径是售货机,支付的话流程基本成型,后来需求增加,新增手机商城,使用H5实现,H5支付这一块就落到了我的手上,支付的业务大同小异,我就去研究之前前辈写的支付业务,加上H5支付的文档,将手机商城的支付做了出来。只要流程业务以
原创
3318阅读
0评论
9点赞
发布博客于 10 月前

全球国家信息xml文件数据提取

今天项目中遇到一个需求,就是可以对全球国家地区进行选择。那么要么就是数据库字典表,要么就是读取本地文件。这里我们选择读取本地文件,包含中英繁三种语言的文件,可在我的资源中下载。首先引入依赖包<dependency> <groupId>dom4j</groupId> <artifactId&g...
原创
576阅读
0评论
2点赞
发布博客于 1 年前

全球国家信息xml数据(含中英繁)

鹅厂中提取的全球地区信息xml文件,包含了中文,英文,繁体三种语言的文件,可以搭配博文中写的全球地区数据xml文件解析工具类使用哦
zip
发布资源于 1 年前

2020年,一定要事事顺心,天天开心啊

 
发布Blink于 1 年前

小白都能看得懂的java回调

故事背景在日常编程中,我们经常需要对内存的数据进行持久化的工作,把他们保存在硬盘文件或者数据库中。为了避免重复, 我们通常会把这部分工作封装在一个工具类中, 让各个客户端来调用。下文的FileIO就是一个简单的工具类(为了简单起见,并没有使用单例或静态方法来实现)小张的烦恼Java 帝国的FileIO是一个忙碌的家伙,附近7、8个村落的人都来找他, 请他把数据存储到硬盘里。...
转载
1509阅读
5评论
11点赞
发布博客于 2 年前

小白都能看懂的java泛型

一、什么是泛型泛型是Java SE 1.5的新特性,可以适应不同的很多很多类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、为什么使用泛型1.使用泛型能写出更加灵活通用的代码2.泛型将代码安全性检查提前到编译期        使用泛型后,能让...
原创
4404阅读
14评论
58点赞
发布博客于 2 年前

Spring IOC?彻底搞懂它!

目录引言BeanFactory 简介创建 Bean 容器前的准备工作创建 Bean 容器,加载并注册 BeanBean 容器实例化完成后准备 Bean 容器: prepareBeanFactory初始化所有的 singleton beans附录id 和 name配置是否允许 Bean 覆盖、是否允许循环依赖profile工厂模式生成 BeanFa...
转载
1566阅读
2评论
6点赞
发布博客于 2 年前

小白都能看懂的电商系统jvm参数设置简单优化

前言通过上篇文章小白都能看得懂的java虚拟机内存模型我们已经基本了解了jvm的内存模型,并且通过一个jvm案例分析了程序运行中JVM的内存活动。我们学习jvm是为了什么,为了面试么,当然是一部分,但是真正学习jvm的底层原理,一定是为了调优。那么jvm调优到底是调什么呢,目的是什么呢?Stop-The-World 不知道同学们有没有听过SWT,意思是Stop-Th...
原创
1962阅读
6评论
6点赞
发布博客于 2 年前

家里下雪了,可惜,我在离家很远的地方

 
发布Blink于 2 年前

小白都能看懂的java虚拟机内存区域划分

目录一、虚拟机二、虚拟机组成1.栈栈帧2.程序计数器3.方法区对象组成4.本地方法栈5.堆GCGC案例一、虚拟机​同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。同一个java代码在windows上生成的机器码可能是0101.......,在linux上生成的可能是1100....
原创
46921阅读
154评论
457点赞
发布博客于 2 年前

今天我很荣幸的参与了这个上千亿的项目

 
发布Blink于 2 年前

【docker】——docker项目中使用phantomjs实现网页快照缩略图

前言前面有写博文,利用phantomjs实现网页快照,分别适配windows,linux,mac,好不容易搞好了,结果把项目镜像放到docker运行容器的时候,居然失效了。docker内部不也是linux内核么,居然会出问题。找了半天,发现是docker中很多库不兼容可能,不能运行phantomjs命令。想了很多办法,比如更换类库,但是已更换会出现连锁反应,其他一个一个都要换,明显不行。很久才...
原创
1799阅读
1评论
7点赞
发布博客于 2 年前

程序员,也没啥新鲜事,打个卡,加个油!

 
发布Blink于 2 年前

【PhantomJs】——利用phantomjs实现网页快照的两种方式

前言今天遇到一个需求,是前端给后台一个网址,后台需要返回这个网址的快照回去,刚接手的时候一脸懵,了解了一下,是项目中有个播放视频或者直播的区域,需要一张图片来作为封面图,但是如果专门去存的话不方便,也不灵活。既然有需求,那就只能找方法了,网上各种翻阅,方法不多,也不算少,但是很杂,很多工具及代码都有不足之处,有的比较慢,有的是会出现可视化的工具框,比如IFrame,显然不好,最后确定了用p...
原创
1704阅读
1评论
5点赞
发布博客于 2 年前

【docker】——docker-compose部署springboot镜像项目

前言最近项目要上线喽,经理让我自己在电脑上搭建docker练练手,虽然连docker都没弄明白,也只能硬着头皮慢慢搞,不过确实对docker理解加深了,这里先记录一下,后期再整理吧Docker安装:windows10专业版、企业版、教育版都可以安装docker for windows,这个应该是比较好的,官方是说是windows的最好选择,但是我按照网上的教程装了好几遍,运行一直有问题,每次...
原创
1859阅读
1评论
5点赞
发布博客于 2 年前

熬最深的夜,掉最多的头发,变最想成为的自己。 生活中无处不在的落发,还不能博各位哥哥姐姐们几个赞嘛!

发布Blink于 2 年前

昨天服务器被我玩崩了。。。只能重装,辛辛苦苦搭的网站也没了,不过当初没域名使用IP建站的很不好,而且第一次搭建有很多不好的地方,日夜赶工终于又重新搭建了一个,https://wangzhijuno.com 各位小哥哥小姐姐抽空留个言加个人气吧,谢谢大家,预加载缓存,第一个可能有点慢,下次速度就很快了

发布Blink于 2 年前

【支付】——毕业设计中利用websocket做模拟支付

前言最近在做公司项目时使用websocket在支付回调接口中刷新页面状态时,忽然想起今年毕业做毕业设计的时候,做的是一个电商系统,那么支付是必不可少的,当时还没有听说过websocket,去网上查阅资料,申请支付宝或者微信授权肯定是不现实的,还搞了很久的沙箱支付,现在想想真是傻,没有早一点接触到websocket,至于websocket是一门怎样的技术我们在此不做过多介绍,大家可自行查阅资料,...
原创
2738阅读
0评论
7点赞
发布博客于 2 年前

【短链接】——自己实现一个短网址服务

目录前言什么是短链接为什么要用短链接(引用)如何生成短链接实现代码演示前言前段时间做支付的时候,要生成可供微信和支付宝扫描的支付二维码,二维码里存储的也就是一个链接,但是可能是因为链接比较长的缘故,总是被微信拦截。然后就换成了微信官方的长链接转短链接,好不容易弄好了,发现支付宝扫的话会拦截,两家果真是水火不容。。。有问题就解决问题呗,那我换成第三方的好...
原创
3119阅读
4评论
5点赞
发布博客于 2 年前

大家中秋节快乐!

发布Blink于 2 年前

【Docker/K8s】——干货满满!10分钟看懂Docker和K8S

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。...
转载
2576阅读
1评论
4点赞
发布博客于 2 年前

【学习路线】——Python爬虫初学者学习路线

前言这里稍稍整理一下一下爬虫初学者的学习路线,也给自己一个前进的方向。爬虫是入门Python最好的方式,没有之一。Python有很多应用的方向,比如后台开发、web开发、科学计算等等,但爬虫对于初学者而言更友好,原理简单,几行代码就能实现基本的爬虫,学习的过程更加平滑,你能体会更大的成就感。掌握基本的爬虫后,你再去学习Python数据分析、web开发甚至机器学习,都会更得心应手。因为这...
原创
3114阅读
1评论
14点赞
发布博客于 2 年前

【设计模式】——代理、策略、委派模式还在傻傻分不清?

前言前面的博文我们已经分别讲述了代理模式,策略模式和委派模式各自的使用及案例实现。但是三者都写完了,我发现其实我自己都有些混淆了,所以今天特意把他们放在一起看看究竟有什么区别和联系策略模式:策略模式是对算法的封装。定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类...
原创
4005阅读
3评论
7点赞
发布博客于 2 年前

【日志】——python自定义日志类

前言学习python也是兴趣使然,毕竟python近年来热度高涨,刚好对爬虫很感兴趣,所以利用闲余时间研究一下,python基础在学校的时候已经比较熟悉,就先做一些准备工作吧!日志当然是其中重要的一部分了!代码实现import loggingimport getpassfrom sys#### 定义MyLog类class MyLog(object): #### 类MyLo...
原创
3171阅读
0评论
4点赞
发布博客于 2 年前

【设计模式】——委派模式

前言委派模式不属于GOF23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色.实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.委派模式对外隐藏了具体实现, 仅将委派者角色暴露给外部应用场景我们在这...
原创
3461阅读
0评论
3点赞
发布博客于 2 年前

【jmeter】Jmeter如何监控服务器CPU、内存、i/o等资源

一、要准备好的插件:JMeterPlugins-Standard-1.4.0(pwd:cjqd)、ServerAgent-2.2.1(pwd:pxui); 二、解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar包复制到jmeter安装目录下的\lib\ext下; 三、重启jm...
转载
3592阅读
4评论
6点赞
发布博客于 2 年前

一到周末,就超级无聊,看看手机,看看电脑,再看看窗外,都没有我想做的

发布Blink于 2 年前

【个人网站】服务器linux安装MySQL以及Redis

一、安装MySQL这里的话可以看另外一篇文章Linux下安装mysql完整教程,文章基本步骤下来是没问题的。二、安装Redis推荐进入linux路径/usr/local1.获取redis资源wget http://download.redis.io/releases/redis-4.0.10.tar.gz2.解压tar -xzvf redis-4.0.10.tar...
原创
3986阅读
1评论
6点赞
发布博客于 2 年前

【个人网站】docker中部署springboot项目(多个)

一、docker的安装docker是近年比较火的一个开源的应用容器引擎,咱看半天也没太清楚到底有啥用,反正就是感觉像是一个linux的微缩版,这里暂不讨论,有些东西用着用着就知道他的好处及用途了,只是看的话很难真正理解。PS补充:经过使用后,我目前是这样理解的:docker就是一个虚拟机,其中有三个概念:仓库,镜像,容器。仓库就类似于你ide的工作空间,镜像就相当于工作空间中未启动的项目...
原创
5111阅读
1评论
5点赞
发布博客于 2 年前

【个人网站】个人网站搭建预备工作

一、购买云服务器(主机)可以选择阿里云,或者腾讯云,不嫌麻烦或者不在乎性能的可以去寻找免费的,我这里是购买的腾讯云的学生套餐:云+校园购买完成后可以在控制台看到服务器信息二、购买域名(前期可省)如果网站尚未开发完成可以先省略这一步,如果只是单纯为自己玩,也可以不买,直接通过IP访问即可,我这里买的也是腾讯云的腾讯云域名。购买域名非港澳地区还需要进行备案,使用腾讯云助手小程序...
原创
4110阅读
0评论
8点赞
发布博客于 2 年前

第一次炒菜,还是很不错的,以后可以自己做饭给自己吃,反正会炒一个土豆一辈子都吃喝不愁了,为明年去深圳做准备!

 
发布Blink于 2 年前

【设计模式】——纯手写实现JDK动态代理

前言在【设计模式】——代理模式(静态)以及【设计模式】——代理模式(动态)中,我们已经基本了解了什么是代理模式,以及什么是静态代理,什么是动态代理。JDK动态代理以及Cglib动态代理其实底层实现原理都是字节码的重组,不过各自对应的代理场景不同,本文我们重点研究jdk动态代理。通过前文的了解,我们已经知道在JDK动态代理中是JDK动态的帮我们生成一个名为$Proxy0的代理类,那么,我...
原创
5573阅读
3评论
8点赞
发布博客于 2 年前

【设计模式】——代理模式(动态)

前言动态代理是Java语言中非常经典的一种设计模式,也是所有设计模式中最难理解的一种,本文将通过一个简单的例子模拟JDK动态代理实现,让你明白动态代理设计模式的本质。从字面意思来看,代理比较好理解,无非就是代为处理的意思。举个例子,大家到一定年龄还没结婚的话,肯定会被父母催婚,不得已就要去相亲,那么就要去中介所或者找媒婆,那么此处的媒婆就是一个代理。是的,你没有看错,代理就是这么简单!...
原创
5195阅读
0评论
5点赞
发布博客于 2 年前

【土豆】——做人,要像土豆一样

做人要像土豆一样,跟啥都能炖一起,咋整都不难吃。别像花椒大料似的,哪有事哪到,从头到尾都跟着使劲忙活,最后菜做好了,谁动筷子第一件事都是把你挑出去划拉一边去,生怕吃着你。更别像苍蝇,一炒菜你就煽呼小翅膀劲劲的往跟前凑,总把自己也当个材料,进锅里命搭上不说,这盘菜也就完犊子了!一根稻草丢在大街上是垃圾,绑在大白菜上可以卖白菜的价格,绑在大闸蟹上就是大闸蟹的价格。跟着苍蝇进厕所...
转载
4250阅读
11评论
22点赞
发布博客于 2 年前

【面向对象】——JAVA中(PO,VO,TO,BO,DAO,POJO)分别是指什么

前言以前在学校学习java的时候,凡是开发项目都会将各个类分门别类的放在不同的包下,其中实体类的包尤为普遍,一般我都是建一个com.xxx.bean的包,然后凡是项目里面用到的实体类都丢进去,大家都是这样,也就习惯了。到了公司,接触项目后,发现在bean包下面还会分很多包,比如vo/dto/po等,怕自己建类时贻笑大方,特此学习并记录。PO(bean,entity等命名):pers...
转载
5006阅读
0评论
8点赞
发布博客于 2 年前

【面试】——Java面试题内容总结

往期内容聚合设计模式内容聚合面试技术文Java岗 面试考点精讲(基础篇01期)Java岗 面试考点精讲(基础篇02期)Java岗 面试考点精讲(网络篇03期)Java 面试中遇到的坑Java面试中遇到的坑【填坑篇】Java面试中遇到的坑【篇二】java面试遇到的坑[第三期]java面试填坑解惑篇[三]java面试遇到的坑[第四期]面试官:你分析...
转载
5387阅读
7评论
12点赞
发布博客于 2 年前

猜猜user1的name有没有变成a

发布Blink于 2 年前

小白都能看懂的引用传递小案例

前言今天逛论坛,遇到一个新手问引用传递的问题,特此记录。问题是什么我们先看一下遇到的问题是什么User类只有一个属性public static void main(String[] args) { User user1 = new User(); getUser(user1); System.out.println(use...
原创
5904阅读
13评论
17点赞
发布博客于 2 年前

【kafka】——分分钟看懂什么是kafka及其原理

前言本文只为满足新手对名词的好奇,开拓眼界,用通俗易懂的话语解释kafka是什么及其简单原理,博主之前也并未对此有所接触,只是希望对一些前沿技术有所了解,特此记录,并将博主能理解的成分展示给志同道合的朋友,并未做过多实践以及深入,请谅解。什么是kafkakafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。...
原创
5916阅读
1评论
5点赞
发布博客于 2 年前

【二维码】——生成二维码并转为base64

今天项目中刚好用到了二维码转化,在这里分享一个生产二维码并将其转为base64的二维码工具类需要的jar包<!-- 生成二维码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifa...
原创
6097阅读
0评论
6点赞
发布博客于 2 年前

【JUC】——JUC相关知识点,不断更新

前言作为并发的基础,我们需要熟悉掌握JUC相关的知识,才能更好的在实际项目中运用在 Java 5.0 提供了java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中 的 Collection 实现等;以下为他人总结的JUC下常用类:...
原创
5208阅读
0评论
5点赞
发布博客于 2 年前

【JUC】——synchronized应用、作用及实现原理

前言在 Java 中,关键字 synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代Volatile功能),这点确实也是很重要的。三种应...
原创
5931阅读
0评论
5点赞
发布博客于 2 年前

【集群分布式】——白话解说什么是集群,什么是分布式

一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布式。一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配菜师因...
转载
5115阅读
2评论
4点赞
发布博客于 2 年前

【异常】——UnsupportedOperationException

细数开发路上遇到过得坑。前段时间在做业务开发时,往list里add元素的时候,报了一个异UnsupportedOperationException,自认为add方法用了不下千百遍,突然报这个异常什么鬼,困惑了我好久,后来查看源码才找出原因,事情是这样的:如上图,由于事先知道要往集合初始化5个元素,为了方便使用了arrays.aslist(T...a),因为这个函数可以直接传入需要添加的元...
转载
4846阅读
0评论
4点赞
发布博客于 2 年前

【异常】——ConcurrentModificationException

前言在对一个list进行循环,将其中一些元素从list中移除时:在此之前先弄清楚一些相关的知识。Fail-Fast机制快速失败也就是fail-fast,它是Java集合的一种错误检测机制。java.util包中的集合类都有 fail-fast 检测,如果fail-fast迭代器检测到在迭代过程中进行了更改操作,那么它会抛出 ConcurrentModificationEx...
原创
5404阅读
0评论
4点赞
发布博客于 2 年前

【JUC】——乐观锁、悲观锁及乐观锁实现CAS机制

首先介绍一些乐观锁与悲观锁:悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都...
转载
5861阅读
1评论
5点赞
发布博客于 2 年前

别把自己弄得太狼狈,如果你真的愿意去努力,你人生最坏的结果也不过是大器晚成。

发布Blink于 2 年前

【异常】——org.springframework.beans.factory.BeanCreationException:...part of a circular reference....

前言今天再写完一个业务,部署服务器项目时报错:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'deviceShelfProductController': Injection of resource dependencies failed; nested exc...
原创
5055阅读
0评论
6点赞
发布博客于 2 年前

【文件上传】——文件上传后需要重启服务器方可访问到异常

前言今天在帮朋友看文件上传问题的时候,发现上传的文件虽然上传到本地路径或者项目文件下了,但是访问却访问不到,要重新启动项目才可以。找了下网上的解决方案,不一而足,在此收集我试了可以用的方案文件存储在编译文件下按下面这个代码可以将文件存在编译文件下,也就是target/classes下面String path = "/static/upload/";File file1 ...
原创
5958阅读
0评论
5点赞
发布博客于 2 年前

【Java8新特性】——Streams API 详解

一、为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于...
转载
6187阅读
0评论
4点赞
发布博客于 2 年前

【Java8新特性】——Lambda表达式

前言从java8出现以来lambda是最重要的特性之一,它可以让我们用简洁流畅的代码完成一个功能。 很长一段时间java被吐槽是冗余和缺乏函数式编程能力的语言,随着函数式编程的流行java8种也引入了 这种编程风格。一、lambda简介什么是lambda?lambda表达式是一段可以传递的代码,它的核心思想是将面向对象中的传递数据变成传递行为。 我们回顾一下在使用java8之前要...
原创
7210阅读
3评论
12点赞
发布博客于 2 年前

【开发手册】——这些规约你遵守了么?

前言《Java开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续...
原创
7122阅读
0评论
5点赞
发布博客于 2 年前

【Tomcat】——纯手写实现一个简单的Tomcat

前言心血来潮,记得上大学时老师曾经简单讲过Tomcat底层的实现原理,并给我们演示过简单的实现,趁着刚毕业还没有全部忘记,回温一下记录在这里,在这里纯底层实现一个简单可以访问静态文件以及动态请求的Tomcat服务器。实现功能:1:静态资源请求2:动态请求处理3:session及cookie信息存储,为方便下文的理解不了解的同学可以先自行了解一下session和cookie...
原创
6855阅读
10评论
12点赞
发布博客于 2 年前

【面试】——session和cookie 区别

session原理:1、session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大2、浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值, 创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器3、浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=ID的...
转载
6418阅读
6评论
6点赞
发布博客于 2 年前

【异常】——JAVA之全局国际化异常处理

前言在项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。一、自定义异常...
原创
6861阅读
0评论
3点赞
发布博客于 2 年前

【RSA】——非对称加密及RSA加密算法

目录一、非对称加密 1、什么是非对称加密? 2、非对称加密的工作过程 3、非对称加密的优点 4、非对称加密的不足二、RSA加密算法 1、什么是RSA加密算法 2、RSA的加密原理 3、RSA加密的流程 4、实际开发中使用RSA加密需要注意的地方一、非对称加密1、什么是非对称加密?非对称加密是指,需要用一对儿密钥,即公钥和私钥,来完成加...
转载
6458阅读
0评论
4点赞
发布博客于 2 年前

【AES】——对称加密及AES加密算法

目录一、对称加密 1、什么是对称加密? 2、对称加密的工作过程 3、对称加密的优点 4、对称加密的两大不足二、AES加密算法 1、什么是AES加密算法及AES加密算法的形成过程 2、AES的加密流程(要理解AES的加密流程,会涉及到AES的五个关键词:分组密码体制、Padding、初始向量IV、密钥、四种加密模式) 3、AES的加密原理(要理解AES的...
转载
6493阅读
0评论
2点赞
发布博客于 2 年前

【MD5】——MD5算法和SHA-1算法

目录一、MD5算法 1、MD5算法是什么? 2、MD5算法的优点 3、MD5算法的不足 4、MD5加密的应用场景 5、MD5算法的代码二、SHA-1算法 1、SHA-1算法和MD5算法联系与区别 2、SHA-1算法的代码一、MD5算法1、MD5算法是什么?MD5的英文全称是Message Digest Algorithm MD5,译为消息摘要算...
转载
6178阅读
0评论
4点赞
发布博客于 2 年前

【支付宝】——从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名

warning:涉及到支付宝SDK的内容,均摘自支付宝开放平台。warning:同时因为支付宝SDK使用的是RSA加密算法来加密和生成数字签名,因此本文中所涉及到的概念也都是针对于RSA非对称加密算法。目录一、名词解释 1、什么是公钥和私钥? 2、什么是加密和数字签名,加密和数字签名的联系与区别(注意,数字签名其实是独立于哈希算法、AES对称加密、RSA非对称加密的,或者...
转载
7049阅读
3评论
6点赞
发布博客于 2 年前

【红黑树】——五分钟搞懂什么是红黑树(全程图解)

前言红黑树,对很多童鞋来说,是既熟悉又陌生。熟悉是因为在校学习期间,准备面试时,这是重点。然后经过多年的荒废,如今已经忘记的差不多了。如果正在看文章的你,马上快要毕业,面临着找工作的压力;又或者你觉得需要将这块知识重新复习一遍;又或者只是看看,那么恭喜你,赚到了。那么我将带领大家重新认识下红黑树,用简单的语言,搞懂红黑树。在学习红黑树之前,咱们需要先来理解下二叉查找树(BST)。二...
转载
6449阅读
2评论
4点赞
发布博客于 2 年前

【面试】——Java面试重难点剖析

Java面试重难点剖析(不断更新)1、高并发访问数据库优化方法2、 java finalize方法总结、GC执行finalize的过程3、简单理解Socket及TCP/IP、Http、Socket的区别4、 java之yield(),sleep(),wait()区别详解-备忘笔记5、线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理6、...
转载
4061阅读
1评论
6点赞
发布博客于 2 年前

【JMeter】——问题篇-CSV Data Set Config传递中文参数

前言在使用jmeter进行压力测试,使用CSV Data Set Config像接口传递参数是遇到中文,一直乱码,导致难以顺利进行。先提供网上的解决办法:1)把File encoding 设置为utf-8(2)txt文件保存时选择编码为UTF-8,就没有乱码问题了。2)把File encoding 设置为gb2312(2)txt文件保存时选择编码为ANSI,就没有乱码问题了...
原创
5580阅读
0评论
3点赞
发布博客于 2 年前

【JMeter】——中级篇-多用户token解析压测

前言##问题描述:1、当前系统通过token实现系统安全验证,登录成功后,token被存储在返回体中(reaponse body),后续服务器请求时,需要将该token添加到请求头部(request header)中;2、当前web服务访问时,强制限制必须使用谷歌浏览器;3、测试jemeter脚本时,提示错误:{“flag”:false,“code”:401,“message”:“Un...
转载
6142阅读
0评论
4点赞
发布博客于 2 年前

【JMeter】——入门篇-多用户登录压测

在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的.这个时候我们就可以使用CSV Data Set Config实现参数化登录:首先通过Test Plan或者Thread Group的Add->Config Element->CSV Data Set Config添加以下是CSV Data Set Confi...
转载
5974阅读
0评论
3点赞
发布博客于 2 年前

【JMeter】——压力测试之badboy和Jmeter的简单使用方法

前言前面使用jmeter单独做压力测试,录制流程还需要配置代理,不方便而且我并没有录制成功,于是结合badboy的录制和jmeter的压测,成功完成所需要的压力测试。转来两者使用方法任君观阅:文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处http://www.cnblogs.com/naaoveGIS/1.背景所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能...
转载
5150阅读
0评论
3点赞
发布博客于 2 年前

【JMeter】——中级篇-JMeter自带的录制功能

前提条件准备:1.下载并解压JMeter,保证JMeter能正常运行起来。2.一个火狐浏览器3.能连接互联网(能打开百度)接下来,我就一步一步教你如何使用JMeter进行脚本录制,然后测试下录制的脚本。1.打开JMeter这里,我从(https://archive.apache.org/dist/jmeter/binaries/) 下载了一个3.3版本,建议你下载版本和我...
转载
5472阅读
0评论
2点赞
发布博客于 2 年前

【JMete】——入门篇-性能测试完整入门

1. 前言由于最近项目要上线了,测试人手不够,而我又比较闲,所以被派去熟悉一下jmeter,对项目进行一下压力测试,特此转来jmeter入门教程已备观阅。Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能...
转载
5549阅读
0评论
3点赞
发布博客于 2 年前

【多线程】——JAVA多线程文件下载

在项目开发过程中,需要对服务器上的某些文件进行下载,最好还是多线程的,网查查阅一下资料,整理两个可以用的案例,特此记录。两个案例分别采用文件流的方式和RandomAccessFile实现。一、文件流操作DownloadManager:下载管理,是总线程,在此线程中开启多个分线程进行文件下载public class DownloadManager implements Runnabl...
原创
7171阅读
0评论
3点赞
发布博客于 2 年前

【异常】——Cause: java.sql.SQLException: sql injection violation, multi-statement not allow :XXXXX

在使用mybatis进行批量更新时报错:Cause: java.sql.SQLException: sql injection violation, multi-statement not allow :XXX找到报错的sql语句:<update id="moveDevices"> <foreach collection="deviceIds" ...
原创
12159阅读
0评论
3点赞
发布博客于 2 年前

【百度地图】——百度地图API获取经纬度、地址及周边兴趣点

在做一个电商项目过程中,需要获取设备地理信息,包括经纬度定位,附近地址等,于是写了一个工具类方便使用。1.在使用百度地图API使,首先要获取官方授权,在http://lbsyun.baidu.com/index.php?title=androidsdk页面获取秘钥,然后按照要求申请即可,需要手机和百度账号及邮箱认证。激活后可看到后台页面,现在可以开始创建应用了,这里请求校验方式有两种,一种是白...
原创
7510阅读
0评论
4点赞
发布博客于 2 年前

【异常】java.sql.SQLException:Connection is read-only.Queriesleadingto data modification are not allowed

在用项目开发的时候,调用接口报了以下错误:TransientDataAccessResourceException :### Error updating database. Cause: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allow...
原创
5676阅读
0评论
3点赞
发布博客于 2 年前

【短链接】——新浪、百度、搜狐等官方长链接转短链接

在项目中难免会生成自己的跳转链接,为了简化链接以及防止微信等屏蔽,可以用一些官方的api将自己的链接转为短链接。ConvertShortUrlUtil.javapublic class ConvertShortUrlUtil { public static CloseableHttpClient httpClient; static { httpCl...
原创
11066阅读
3评论
3点赞
发布博客于 2 年前

【微信】——微信获取token及长链接转短链接

最近项目中接触到支付的部分,生成的链接用第三方的容易被微信屏蔽,所以使用微信官方的长链接转短链接的api,过程中需要获取微信token,关于获取token的知识网上很多,大家可自行百度。WxUtils.javapublic class WxUtils { /** * 微信根据APPID和APPSECRET获取token * @param appid ...
原创
8201阅读
0评论
3点赞
发布博客于 2 年前

【Solr】——搜索引擎的部署及使用

最近在做毕业设计,一个电商APP,遇到搜索商品的问题,以往做的数据库模糊查询感觉不是那么的高大上,于是决定使用Solr搜索引擎,在此给同样想法的小伙伴一点借鉴,望共勉。一、Solr部署1.Solr下载部署solr通常有2中方式,一个是部署在外部的web容器中例如tomcat,另一个是使用solr内置的jetty作为web容器。因为我做的是微服务项目,感觉独立部署方便一点,所以我们这里...
原创
7713阅读
0评论
6点赞
发布博客于 3 年前

【设计模式】——单例模式(七种)

一、单例模式1.饿汉式public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return insta...
转载
6821阅读
0评论
3点赞
发布博客于 3 年前

【JUC】——CurrentHashMap(1.7、1.8)

一. CurrentHashMap概述笔者曾在《Map——HashMap》一文中提到,HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap不是线程安全的。也就是说,在多线程环境下,操作HashMap会导致各种各样的线程安全问题,比如在HashMap扩容重哈希时出现的死循环问题,脏读问题...
原创
8077阅读
4评论
6点赞
发布博客于 3 年前

【Map】——HashMap死循环

前言在《Map——HashMap》中我们详细介绍了HashMap的使用,HashMap是一个数组链表,当一个key/Value对被加入时,首先会通过Hash算法定位出这个键值对要被放入的桶,然后就把它插到相应桶中。如果这个桶中已经有元素了,那么发生了碰撞,这样会在这个桶中形成一个链表。一般来说,当有数据要插入HashMap时,都会检查容量有没有超过设定的thredhold,如果超过,需要增大H...
转载
8055阅读
0评论
5点赞
发布博客于 3 年前

【基本类型】——基本类型与包装类型

一、基本类型Java一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。类型限制了变量可以hold什么样的值,表达式最终会产生什么样的值,可以进行哪些操作。在Java中共有8中基本类型数据,同时每种基本类型又有对应的包装类。最简单的理解,基本类型有默认值,而包装类型初始为null。然后再根据这两...
原创
8407阅读
1评论
5点赞
发布博客于 2 年前

【设计模式】——模板方法模式

一、模板方法模式在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。这时我们就需要定义一个模板结构,将具体内容延迟到子类去实现。在不改变模板结构的前提下在子类中重新定义模板中的内容。抽象类(AbstractClass):定义抽象的原语操...
原创
6959阅读
0评论
3点赞
发布博客于 3 年前

【设计模式】——原型模式

一、原型模式原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。客户(Client)角色:客户类提出创建对象的请求。 抽象原型(Prototype)角色:这是一个抽象角色,通常由一个Java接口或Java抽象类实现。此角色给出所有的具体原型类所需的接口。 具体原型(Concre...
原创
6599阅读
0评论
3点赞
发布博客于 3 年前

【MySql】——执行计划解读

一、MySql执行计划所谓的执行计划就是Mysql如何执行一条Sql语句,,描述mysql如何执行查询操作、执行顺序,使用到的索引,以及mysql成功返回结果集需要执行的行数。可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们的查询,让查询优化器能够更好的工作。例如:基本语法:explain select ...一些变体将表格形式的执...
转载
7252阅读
0评论
3点赞
发布博客于 3 年前

【设计模式】——代理模式(静态)

一、代理模式代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。为什么要采用这种间接的形式来调用对象呢?一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。代理对象:起到中介作用,连接客户端和目标对象 例子:电脑桌面的快捷方式。电脑对某个程序提供一个快捷方式...
原创
7942阅读
2评论
3点赞
发布博客于 3 年前

【MySQL】——索引使用策略及优化

前言MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于前文MySql的B-/+Tree索引原理剖析和MySql的MyISAM和InnoDB两个存储引擎的索引实现的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解...
转载
6609阅读
0评论
3点赞
发布博客于 3 年前

【MySql】——MyISAM和InnoDB两个存储引擎的索引实现

前言在上文MySql的B-Tree索引原理剖析中我们讨论了与索引相关的数据结构与算法问题,本文讨论B+Tree是如何具体实现为MySQL中索引,同时将结合MyISAM和InnDB存储引擎介绍非聚集索引和聚集索引两种不同的索引实现形式。聚簇索引: 索引 和 数据文件为同一个文件。非聚簇索引: 索引 和 数据文件分开的索引。一、MyISAM索引实现MyISAM引擎使用B+Tree...
转载
7271阅读
0评论
3点赞
发布博客于 3 年前

【MySql】——B-/+Tree索引原理剖析

一、什么是索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。常见的索引:顺序查找: 最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕。 hash索引无法满足范围查找。 二叉树、红黑树 [复杂度O(h)]导致树高度非常高(平衡二叉树一个节点只能有左子树和右子树),逻辑上很近的节点...
转载
7030阅读
0评论
3点赞
发布博客于 3 年前

【ArrayList】——java.util.ArrayList源码分析

一、ArrayList类这里分析jdk 1.8,包含一些1.8新特性的源码继承树如下:宏观上说,ArrayList是基于动态数组实现的,数组具有按索引查找的特性,所以访问很快,适合经常查询的数据。public class ArrayList<E> extends AbstractList<E> implements List<...
原创
8709阅读
0评论
3点赞
发布博客于 3 年前

【设计模式】——装饰器模式

一、装饰器模式装饰器模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。其结构图如下:Component为统一接口,也是装饰类和被装饰类的基本类型。 ConcreteComponent为具体实现类,也是被装饰类,他本身是个具有一些功能的完整的类。 Decorator是装饰类,实现了Component接口的同时还在内部维护了一个ConcreteComponent的实例,...
转载
7932阅读
0评论
4点赞
发布博客于 3 年前

【设计模式】——策略模式

一、策略模式写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。分析下定义,策略模式定义和封装了一系列的算法,它们是可以相...
转载
7932阅读
0评论
3点赞
发布博客于 3 年前

【设计模式】——工厂模式

一、简单工厂简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些。因为它至少不是Gof23种设计模式之一。但它在实际的编程中经常被用到,而且思想也非常简单,可以说是工厂方法模式的一个引导,所以我想有必要把它作为第一个讲一下。简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通...
转载
8019阅读
1评论
2点赞
发布博客于 3 年前

【设计模式】——工厂模式

一、简单工厂简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些。因为它至少不是Gof23种设计模式之一。但它在实际的编程中经常被用到,而且思想也非常简单,可以说是工厂方法模式的一个引导,所以我想有必要把它作为第一个讲一下。简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通...
转载
8019阅读
1评论
2点赞
发布博客于 3 年前

【Android】入门案例(三)——HTTP连接MySql数据库实现登录

前言在上文Android入门案例(二)——JDBC连接MySql数据库实现登录中我们已经实现JDBC直连数据库,我在结尾也说过实际开发中一般是Android端访问web后台,由后台程序接受参数去访问数据库,并返回访问结果给Android端,本文我们来实现HTTP方式的登录小案例。在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用http的post和get请求后台服务器,...
原创
15036阅读
21评论
10点赞
发布博客于 3 年前

【异常】——Android:Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

前言练习Android项目Android入门案例(三)——HTTP连接MySql数据库实现登录时导入了http有关架包后,程序编译报错如下:Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.Trans...
原创
7760阅读
0评论
3点赞
发布博客于 3 年前

【线程】——向线程传递参数的方法

在学习AndroidAndroid入门案例(二)——JDBC连接MySql数据库使用jdbc方式连接本地数据库需要新开子线程,遇到向线程传参的问题,特开此贴一、通过构造方法传递数据在创建线程时,必须要建立一个Thread类的或其子类的实例。因此,我们不难想到在调用start方法之前通过线程类的构造方法将数据传入线程。并将传入的数据使用类变量保存起来,以便线程使用(其实就是在run方法中使...
原创
7958阅读
0评论
3点赞
发布博客于 3 年前

【异常】java.lang.NullPointerExeption:Attempt toinvoke interface method java.sql.Statement java.sql.Conn

一、前言在此之前可看下另一个错误是否伴生,有的话先解决数据库访问超时在学习AndroidAndroid入门案例(二)——JDBC连接MySql数据库使用jdbc方式连接本地数据库时报错:java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.Statement java.sql.Con...
原创
11866阅读
2评论
2点赞
发布博客于 3 年前

【Android】入门案例(二)——JDBC连接MySql数据库实现登录

在上文Android入门案例(一)——简单登录中,我们只是简单接触Android,所以实现的是单机登录,这章我们接着完善登录的小案例,选择连接mysql云端数据库一、准备1.加载外部jar包在Android工程中要使用jdbc的话,要导入jdbc的外部jar包,可去官网下载,也可以百度自行下载2.导入jar包方式一:可以在项目的build.gradle文件中直接添加如下语...
原创
16950阅读
10评论
17点赞
发布博客于 3 年前

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

一、前言在学习AndroidAndroid入门案例(二)——JDBC连接MySql数据库使用jdbc方式连接本地数据库时报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the serve...
原创
47752阅读
8评论
15点赞
发布博客于 3 年前

【Android】入门——基本控件详解

Android应用开发的一项重要内容就是界面开发。对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户。作为一个程序员如何才能开发出友好的图形界面呢。实际上Android提供了非常丰富UI(UserInterface)控件,开发者只要掌握了这些控件的特性,按照一定的规律,就可以像堆积木一样开发出友好的图形界面。本文将介绍常用的基本控件的...
原创
7430阅读
0评论
2点赞
发布博客于 3 年前