0%

关于设计模式

引言

写了两年的Java和Android,对于面向对象的思想已然有了自己的一份体会,并在一次次的实践中,加深对这种思想的体会。每一次对代码封装复用,松耦合设计的过程中,都能感受到面向对象思想带来的愉悦,这大概就是其魅力所在。关于设计模式,也不可避免的接触了一些想观察者模式,单例模式,工厂模式等,但对于他们都是只停留在简单的实践阶段,对于其思想并没有太深刻的体会。
在我看来,作为一个Java程序员,面向对象以及设计模式的思想深度,将决定其写出来的代码,是一个精致巧妙的艺术品,还是如书中所说是一团毫无弹性的意大利面。
决定需要好好恶补一下关于设计模式的知识,我选择了《Head First 设计模式》,就目前所翻阅到章节看来,我选对了!

阅读全文 »

Retrofit2

学习使用Retrofit和RxJava,简单记录一下重要的api和使用方法

阅读全文 »

问题背景

此先说明,我的操作系统环境是deepin-15.10.2。Tomcat版本是9.0.13
某天将JetBrains-Idea从182更新到191后(是了一百年没更新了),正常启动tomcat跑程序时候,突然刷的一下报错

错误: 必须限制口令文件读取访问权限: …/.IntelliJIdea/system/tomcat/Test/jmxremote.password

(心急的旁友直接看下边方案吧,不着急可以看看我的解决过程噢..)

解决方案

在TomcatHome/bin/catalina.sh文件中添加以下参数,位置大概在原文注释以后,所有代码以前

JAVA_OPTS=”$JAVA_OPTS -Dcom.ibm.team.jfs.app.oauth.OAuthHelper.disableSecureCookies=true”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false”

阅读全文 »

Deepin 15.10.2 stable

最近又重装了一遍Deepin,全新安装最新版本Deepin15.10.1,然后更到15.10.2(赶上这几天Deepin更新了)。此次安装折腾了两天,解决了很多之前的问题,当然,也出现很多之前没有出现过的问题(流泪)。
得到了很多经验体会,特此记录
(这几天不断地强制关机,感觉我的机械硬盘命不久矣噢…TAT)

阅读全文 »

最近学习《Android开发艺术探索》的View事件体系,对View有了跟多的理解和心得体会,遂记录,加深理解也便同人交流。

View一般有三种实现方式,ScrollTo/ScrollBy实现动画实现改变布局参数实现。注意其中除了动画以外,其余两种都是非弹性的滑动,即是“瞬移”。

ScrollTo/ScrollBy实现

这是View内部的两个方法,主要区别就是绝对滑动和相对滑动。即

ScrollTo(),基于所传递参数的绝对滑动
ScrollBy(),基于当前位置的相对滑动

阅读全文 »

今天写东西遇到了滑动触发动画的问题,于是开始了Android监听手势之旅。然而并不是特别顺利,特记下一些心得体会与相关的理解。

Android中主要有两种手势行为,一是官方提供的特定手势,而是用户自定义的手势。本文主要讲关于android提供的手势交互。

手势交互顺序

Android中的手势交互可分解为几个小过程:

  1. 手指与屏幕接触,触发MotionEvent事件
    • MotionEvent事件中封装了一些手势动作的事件,以及x,y轴的坐标值。
  2. OnTouchListener监听MotionEvent事件,通过其onTouch()方法可获得该事件对象。
  3. MotionEvent事件可由GestureDetector转发给OnGestureListener,在OnGestureListener中获取事件对象,进行下一步操作。
    • GestureDetector可以识别各种手势
    • OnGestureListener用于监听各种的手势交互
阅读全文 »

引入

听说其实Android直接连接数据库的情况是比较少的,出于安全和内存都不建议,一般是连接服务器,通过服务器操作数据库。
但毕竟还是有必要掌握这项技能(其实是已经记不清前几天是为什么要写这么个东西了,纠缠几天下来已然混乱)
这几天这是焦头烂额,每一步都会卡一下,网上的博客也是看了不少,没能很直接解决问题(虽然最后的结果也是令我哭笑不得)

可能出现的问题:
JDBC URL中的IP地址或主机名错误
本地DNS服务器无法识别JDBC URL中的主机名
JDBC URL中的端口号丢失或错误
数据库服务器关闭
数据库服务器不接受TCP/IP连接
数据库服务器已用完连接
Java和DB之间的某些东西阻止了连接,例如防火墙或代理

可以尝试以下操作:
测试ip地址能否ping通
刷新DNS或使用JDBC URL中的IP地址
根据MySQL DB的my.cnf进行验证
启动数据库服务
验证是否在没有–skip-networking选项的情况下启动mysqld
重新启动数据库并相应地修改代码,以便最终关闭连接
禁用防火墙和/或配置防火墙/代理以允许/转发端口
注意别忘了给app添加internet权限 <uses-permission android:name="android.permission.INTERNET"/>

以上是在其他地方看到简单总结的一些要点。
然后要开始来讲故事了。。

阅读全文 »

基本概念

  • 计算机网络协议:语法,语义,时序
    • 语法:描述实体间信息交换格式
    • 语义:控制信息的具体含义
    • 时序:交换信息的顺序以及速度配合
  • 功能:硬件,软件,信息
  • 分类:覆盖范围,拓扑结构,交换方式,用户属性
    • 树形,星形拓扑:易于管理,中心节点是网络的关键,线路较多成本较高
    • 环形,总线拓扑:成本效率不高,排错,增删,不便于管理
    • 网状拓扑:节点间通信多路径选择,结构复杂成本高
      阅读全文 »

晚上修改了deepin的启动项。
虽然还不知道为什么amd64版本就可以使用,但是先照一个帖子修改了启动项。我觉得没问题。但是还是记录一下修改过程以及一些细节

阅读全文 »