一些问题和要点

来源:互联网 发布:c 编程打印九九乘法表 编辑:程序博客网 时间:2024/06/01 08:12

1.    远程读取txt文件,文件首行是数字,下面几行是文字(txt文件用utf-8编码保存),读取首行数字字符串的时候,获取的字符增加一个不可见的字符串,idea中可见(与txt文件编码方式有关,txt用ansi编码保存就没问题,可 一般数据不会存在编码问题),字符串长度也增加了一,导致后面将字符串转换成数字不成功。

最后用暂用str.replaceAll("\\D", "");解决,为什么会出现这个看不见的字符还不得而知。

今天(2015-03-06)了解到原来是,打开记事本会自动在开头加上几个莫名的字符。

2.    昨天碰到一个问题,纠结了快一天,具体是这样的,在百度地图上根据两点经纬度求两点间距离,结果出现许多0.0的结果(集合里所有点,依次求距离),然而ios也用相同的方法却可以得到正确的结果,经过一段调试后发现是 distance = Math.round(distance * 100)/100这句惹的祸,这主要是四舍五入去掉distance小数后两位后面的小数,保留两位小数,这在ios里面可以求的正确结果,但是java里面这样就直接转整形了,所以零点几的数都变成了零, 正确应该这样distance = Math.round(distance * 100)/100.0, 在后一个一百后面加上点零,就正确了,哎当时也没太注意,此时颇有点一零值千金的感觉。

3.PopupWindow 在Acitivity的onCreate方法里面调用showAtLocation方法会报以下错:

android.view.WindowManager$BadTokenException: Unable to add window --token null is not valid; is your activity running?

这个问题应该是PopupWindow的实例生成的时候,它的window对象无法获取到正确的Token,这样必须等到Activity的onCreate方法执行再去调用PopupWindow的一些show方法,解决办法:1,放在Click事件中,2,要想一进入Activity就show的,那么放在onWindowFocusChanged();方法中show 。

如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框

4.对于Spring的配置文件的bean元素,其scope属性有如下几个值:

(a).singleton 单例

(b),prototype 表示每次从容器中取出bean时,都会生成一个新实例.相当于new出来一个对象.

(c).request 该属性是基于web的,表示每次接收一个请求时,都会生成一个新实例.在这种情况下,request与prototype一样.

(d).session 表示每个session中该对象只有一个.

(e)globalSession

5. 一些命令

(1) adb root 获取root权限

(2)adb shell 进入shell界面

(3) adb devices 显示所有在线设备

(4) adb -s 设备名 shell 进入指定设备shell

(5) adb connect wifie.ip:5555 wife连接adb 手机上也需设置一下

  1. # setprop service.adb.tcp.port 5555  
  2. # stop adbd  
  3. # start adbd

(6) monkey -p 包名 -v 次数 monkey测试

(7)C:\Users\admin>jarsigner -verbose -keystore d:\key\GpsCarBaiDu.keystore -signedjar d:\key\signed.apk e:\Baidu_Claim_unsigned.apk gpscarbaidu
-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件

6.volatile关键字

由于volatile变量只能保证可见性(一个线程修改后其它线程能够理解看到此变化后的结果)并不能保证是线程安全的,在不符合以下两条规则的运算场景中,我们仍然要通过加锁(使用synchronized或java.util.concurrent中的原子类)来保证原子性。

  • 运算结果并不依赖变量的当前值,或者能够确保只有单一的线程修改变量的值。
  • 变量不需要与其他的状态变量共同参与不变约束。
使用volatile的第二个语义是禁止指令重排序优化。
“as-if-serial”语义:不管怎么重排序,单线程程序的执行结果不能被改变。编译器、运行时和处理器都必须遵守“as-if-serial”语义。

7.使用HttpURLConnection发送post和get请求
http请求实际上由两部分组成,一个是http头,所有关于此次http请求的配置都在http头里面定义,一个是正文content,在connect()函数里面,会根据HttpURLConnection对象的配置值生成http头,因此在调用connect函数之前,就必须把所有的配置准备好。
紧接着http头的是http请求的正文,正文的内容通过outputStream写入,实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络,而是在流关闭后,根据输入的内容生成http正文。
至此,http请求的东西已经准备就绪。在getInputStream()函数调用的时候,就会把准备好的http请求正式发送到服务器了,然后返回一个输入流,用于读取服务器对于此次http请求的返回信息。由于http请求在getInputStream的时候已经发送出去了(包括http头和正文),因此在getInputStream()函数之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改)都是没有意义的了,执行这些操作会导致异常的发生。

// 当有数据需要提交时              if (null != outputStr) {                  OutputStream outputStream = httpUrlConn.getOutputStream();                  // 注意编码格式,防止中文乱码                  outputStream.write(outputStr.getBytes("UTF-8"));                  outputStream.close();              }  



8.时区夏令时
通过Calendar的get方法解决夏令时,冬令时问题
calendar.get(Calendar.DST_OFFSET)/3600000));
System.out.println("zone_offset:"+(calendar.get(Calendar.ZONE_OFFSET)/3600000)

9.Android防杀方法

  • Service设置成START_STICKY,kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样
  • ​通过 startForeground将进程设置为前台进程,做前台服务,优先级和前台应用一个级别​,除非在系统内存非常缺,否则此进程不会被 kill
  • 双进程Service:让2个进程互相保护,其中一个Service被清理后,另外没被清理的进程可以立即重启进程
  • QQ黑科技:在应用退到后台后,另起一个只有 1 像素的页面停留在桌面上,让自己保持前台状态,保护自己不被后台清理工具杀死
  • 联系厂商,加入白名单、

  • 10.linux命令
    复制文件 sudo cp -r index.js /usr/local/webserver/tomacat/webapps/test/
    删除文件 sudo rm -r test.war || sudo rm -r *.txt 删除所有txt结尾的文件
    sudo ps -x //linux查看进程
    sudo kill -9 3968 7513 //-9后面为进程id号

    11.Android

    LayoutInflater中有两个inflate方法:

    • public View inflate( int resource, ViewGroup root)
    • public View inflate(int resource, ViewGroup root, boolean attachToRoot)

    对定义view的影响

    onMeasure()方法都会根据测量模式做不同处理

    MeasureSpec.EXACTLY == LayoutParams. MATCH_PARENT//或设置的一个精确值

    MeasureSpec.AT_MOST == LayoutParams. WRAP_CONTENT

    可以知晓测量时依赖于LayoutParams。而inflate(resId,null)是不会设置LayoutParams的。

    在listview中出现item设置的宽高没有被处理的时候可以检查一下是否正确调用了inflate方法


    12.Servlet自动刷新页面

    // 设置刷新自动加载的事件间隔为 5 秒
          response.setIntHeader("Refresh"5);


    13 友盟分享回调的一些问题
    qq分享
    首先要保证项目中两处(AndroidManifest.xml和application)中的appid一致,然后在activity中要重新onActivityResult方法,不然回调不执行:
    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        /** attention to this below ,must add this**/        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);        Log.d("result","onActivityResult");    }
    微信分享
    在包目录下创建一个wxapi目录里面创建一个WXEntryActivity空类,然后AndroidManifest.xml声明一下,不然不能执行回调
    public class WXEntryActivity extends WXCallbackActivity {}

    mysql 5.7.16压缩包安装后修改密码
    alter user 'root'@'localhost' identified by '12345';

    0 0
    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 蛙跳理蛙跳后腿疼怎么办 蛙跳两天后腿还疼怎么办 莲花菩提盘黑了怎么办 体育课蛙跳后肌肉拉伤怎么办 o型腿骨头弯了怎么办 小孩钢琴坐姿不对向后仰怎么办 小孩皮肤不好容易留疤怎么办 学游泳时站不稳怎么办 水呛到了不停打嗝怎么办 来月经前游泳了怎么办 快来完事游泳了怎么办 游泳时来月经了怎么办 经期第7天游泳了怎么办 来月经已经游了泳怎么办 月经来了要游泳怎么办 三个月宝宝趴着不会抬头怎么办 我的月经不完怎么办 游泳时怎么办能浮出水面 游泳时眼镜起雾怎么办 练瑜伽手臂变粗怎么办 孕妇喝了芬达怎么办 宫口开了但头高怎么办 整天坐着肚子越来越大怎么办 坐久了屁股变大怎么办 屁股久坐的黑印怎么办 练瑜伽小腿变粗怎么办 练瑜伽腿粗了怎么办 练完瑜伽腿粗怎么办 肚子大屁股大腿粗怎么办 甲状腺偏大弥漫性欠均匀怎么办 大腿后侧拉伤了怎么办 腰和臀部都疼怎么办 瑜伽后弯后腰疼怎么办? 吃了大蒜肝痛怎么办 练瑜伽前躯不行怎么办 月子里碰冷水了怎么办 月子手碰凉水了怎么办 月子里碰了冷水怎么办 顺产后下面会痛怎么办 产后肚子瘦不下来怎么办 出月子后臀部很疼怎么办