擅长Android ,J2EE开发 博客园地址:http://www.cnblogs.com/androidsuperman/p/7834762.html github地址: https://github.com/soyoungboy
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
自定义函数以及函数调用 例子: #!/usr/bin/python # -*- coding: UTF-8 -*- # 定义函数 def printMe(str): "打印任何传入的字符串" print str; return; # 调用函数 printMe("我要调...
time.time()获取当前时间戳 例如: #!/usr/bin/python # -*- coding: UTF-8 -*- import time; # 引入time模块 ticks = time.
字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。 dict = {'Name': 'soyoungboy', 'Age': 27, 'School': 'Xian Univers...
文件写入操作,如果发生IO异常,则打印没找到文件,读取文件失败异常。 try: fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!") except IOError: print "Error: 没有找到文件或读取文件失败" else: print "内容写入文件成功" fh.
列表数据更新: #!/usr/bin/python list = ['physics', 'chemistry', 1997, 2000]; print "Value available at index 2 : " print list[2]; list[2] = 2001; # 直接给列...
Python访问字符串中的值 # !/usr/bin/python var1 = 'Hello World!' var2 = "Python Runoob" print "var1[0]: ", var1[0] # 字符中第一个内容 print "var2[1:5]: ", var2[1:5...
while循环 #!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!" 结果: The count is: 0...
+ 加 - 两个对象相加- 减 - 得到负数或是一个数减去另一个数* 乘 - 两个数相乘或是返回一个被重复若干次的字符串/ 除 - x除以y% 取模 - 返回除法的余数** 幂 - 返回x的y次幂// 取整除 - 返回商的整数部分 a = 10 b = 20 print a ...
em和strong - 这两个标签都表示一个强调的内容, em主要表示语气上的强调,em在浏览器中默认使用斜体显示 strong表示强调的内容,比em更强烈,默认使用粗体显示 DOCTYPE html> 今夕何夕兮,搴舟中流。
当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示。 优先级的规则 内联样式 , 优先级 1000 id选择器,优先级 100 类和伪类, 优先级 10 元素选择器,优先级 1 通配* , 优先级 0 继承的样式,没有优先级 当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后在比较,但是注意,选择器优先级计算不会超过他的最大的数量级,如果选择器的优先级一样,则使用靠后的样式。
像儿子可以继承父亲的遗产一样,在CSS中,祖先元素上的样式,也会被他的后代元素所继承, 利用继承,可以将一些基本的样式设置给祖先元素,这样所有的后代元素将会自动继承这些样式。 但是并不是所有的样式都会被子元素所继承,比如:背景相关的样式都不会被继承 边框相关的样式 定位相关的 DOCTYP...
语法::not(.选择器) 作用:可以从已选中的元素中剔除出某些元素。 DOCTYPE html> p:not(.
为一个元素后边的元素设置css样式: 语法:前一个 + 后一个。 作用:可以选中一个元素后紧挨着的指定的兄弟元素。 为一个元素后边的所有相同元素设置css样式: 语法:前一个 ~ 后边所有。 DOCTYPE html> ...
Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。 Fork/Join 框架与线程池的区别 采用 “工作窃取”模式(work-stealing):当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,然后再从一个随机线程的队列中偷一个并把它放在自己的队列中。
第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。
一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一一个线程去访问这些synchronized方法锁的是当前对象this,被锁定后,其它的线程都不能进入到当前对象的其它的synchronized方法 加个普通方法后发现和同步锁无关 换成两个对象后,不是同一把锁了,情况立刻变化。
写一条线程,读多条线程能够提升效率。 写写/读写 需要“互斥”;读读 不需要互斥. ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。
编写一个程序,开启 3 个线程,这三个线程的 ID 分别为A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归? package com.
Api文档如此定义: Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。
为了解决多线程安全问题在 Java 5.0 之前,协调共享对象的访问时可以使用的机制只有 synchronized 和 volatile 。Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。
CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。
如图,红色部分为WebView,作为ListView头部存在,测试视频(h5)要左右滑动,ListView要上下滑动,保证视频控件和下面评论部分可以显示,但是这个时候就存在WebView横向滑动和ListView竖向滑动之间的冲突。
ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部;当我们获取一个元素时,它会返回队列头部的元素。
hashtable效率低ConcurrentHashMap 线程安全,效率高 Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。 ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。
多线程原子性问题的产生和解决 原子变量:在 java.util.concurrent.atomic 包下提供了一些原子变量。 1. volatile 保证内存可见性,可以查看atomic中变量是使用volatile来进行修饰的: public class AtomicInteger extends Number implements java.
内存可见性(Memory Visibility) 1 内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态,需要确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。
:first-child 寻找父元素的第一个子元素,在所有的子元素中排序; :last-child 寻找父元素的最后一个子元素,在所有的子元素中排序; :nth-child 寻找父元素中的指定位置子元素,在所有的子元素中排序; :first-of-type 寻找指定类型中的第一个子元素 :last...
属性选择器:根据元素的属性选择指定元素 语法:[属性名] 选取含有指定属性的元素 [属性名="属性值"]:选取属性值等于指定值的元素 [属性名^="属性值"]:选取属性值以指定内容开头的元素 [属性名$="属性值"]:选取属性值以指定内容结尾的元素 [属性名*="属性值"]:选取属性值中包含指定内...
:first-letter 表示第一个字符 :first-line 表示文字的第一行 :before 选中元素的最前边,一般该伪类都会结合content一起使用,通过content可以向指定位置添加内容。
伪类和伪元素用来表示元素所处的一个特殊的状态,或者是一个特殊的位置 比如:访问过的超链接,比如普通的超链接,比如获取焦点的文本框当我们需要为处在这些特殊状态的元素设置样式时,就可以使用伪类 为没访问过的链接设置一个颜色为绿色 :link 表示普通的链接(没访问过的链接)。
android 7.0 popwindow显示位置异常,在android7.1官方进行解决了,但是还是要多7.0的bug进行解决,我的解决方案里面通过重写popwindow进行适配: import android.
Css:Cascading Style Sheets CSS叫做层叠样式表,用来设置页面中元素的样式。背景颜色、字体颜色、字体大小。。。 编写位置: 1,内联样式: 将样式编写到标签的style属性中 doctype html> 超链接 风起檐飞雪 沟壑巧遁形 置身大漠里 踏浪烟波中 效果: 如果对其他标签起作用,内联样式就需要复制到其他标签去,这样就显得比较麻烦,无法复用,不易维护。
作用:可以使当前页面跳转到其他的页面。 链接的文字 属性: href:指向链接跳转的目标地址,比如:https://jx.tmall.com/?ali_trackid=2:mm_119571818_19816570_68286330:1489331178_3k3_1128597987,可以是一个相对路径; 还可以是#id属性值,这样当点击超链接以后,将会跳转到当前页面的指定位置; 可以使用mailto:来创建一个发送电子邮件的超链接。
内联框架iframe 可以向一个页面中引入其他的外部页面 内联框架中的内容不会被搜索引擎所检索,所以开发中尽量不要使用内联框架 属性: src:外部页面的地址,可以使用相对路径 width和height:可以设置框架的宽度和高度 name:可以为内联框架指定一个名字,可以将该属性值设置为超链接的target属性的值,这样当点击超链接时,页面将会在相应的内联框架中打开 例子: 一些老的浏览器不支持 iframe。
Xhtml语法规范 HTML中不区分大小写,但是尽量使用小写; HTML的注释不能嵌套; 标签必须结构完整{要么成对出现,要么自结束标签,虽然浏览器会帮我们修正一些不符合规范的内容} 标签可以嵌套但是不能交叉嵌套 属性必须有值,且值必须加引号,单引号双引号都可以
Image标签 使用img标签来向网页中引入一个外部图片, img标签也是一个自结束标签 属性: src:设置一个外部图片的路径 alt:可以用来设置在图片不能显示时,对图片的描述 搜索引擎可以通过alt属性来识别不同的图片 如果不写alt属性...
集成第三方库出现 Error:Could not find method compile() for arguments [com.android.support:design:23.4.0] on DefaultExternalModuleDependency{group='com.
前端--对前端的认识 一个网页的构成: Html用于描述页面的结构 Css用于控制页面中元素的样式 JavaScript用于响应用户操作 html 超文本标记语言 第一个demo: DOCTYPE html> 我是小帅哥 我是大帅哥 前端-- 注释 注释中的内容不会在页面中显示,但是会在源码中显示,我们可以通过注释来说明网页的代码。
市面上很多android软件都有内嵌H5的,主要是为了节约成本,提高开发效率,其实现原理主要是通过Java代码和JavaScript代码的互相调用来实现。 Java调用Js 1,webview初始化: private void initWebView() { webView =...
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? private static int sum(int i) { if(i==1||i==2) return 1; else ...
1987891这个就是回文,判断“1987891”是不是回文? 1 public static boolean isPalindrome(String str) { return str.equals( new StringBuilder(str) .
java堆是用来存储对象实例的;只要不断创建对象,GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当对象数量达到最大堆的容量限制的时候就会产生内存溢出异常。异常对战信息为OutOfMemoryError,进一步提示:java heap space。
虚拟机内存中数据细节 如何创建? 如何布局? 如何访问? 如何创建? 语言层面:创建对象仅仅是一个new关键字而已。 虚拟机中: 1 检查指令的参数是否在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析,初始化; 2 虚拟机为新生对象分配内存. 如何布局? 分为3个区域: 对象头 实例数据 对其填充 对象头: 分为2部分: 1、用于存储对象自身的运行时数据(hashCode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程的id,偏向时间戳等)。
运行时数据区域: 1 程序计数器: 当前线程所执行的字节码的行号指示器。每条线程都需要有一个独立的程序计数器,各条线程之间互不影响,独立存储,我们称之为线程似有的内存。 如果线程执行的事java方法,计数器记录正在执行的虚拟机字节码指令的地址; 如果执行native方法,程序计数器为空(java虚拟机没有规定outofMemoryError情况的区域)。
activity和service通信:通过binder 举个我实际项目中的例子:在service中下载更新应用 首先是下载更新apk的service: public class UpdateVersionService extends Service { private final St...
循环: 重复执行一段代码,递归,遍历,迭代都属于循环。 代码举例: 1 for(int x = 10; x < 20; x = x+1) { 2 System.out.print("value of x : " + x ); 3 System.out.print("\n"); 4 } 递归: 重复调用自身的,如下例子不断调用自身方法。
1、自己的应用(假设名称为应用 A)在发送广播的时候给自己发送的广播添加自定义权限,假设权限名为:com.itheima.android.permission , 然后需要在应用 A 的 AndroidManifest.xml 中声明如下权限: 2、 其他应用(假设名称诶应用 B)如果想接收该广播,那么就必须知道应用 A 广播使用的权限。
垃圾回收机制:释放那些不再持有引用的对象的内存。 如何判断对象是否需要回收? 引用计数:对象,内存,磁盘空间等被引用次数保存起来,次数为0时将其进行释放。 对象引用遍历:对象应用遍历从一组对象开始,沿着对象图的每条链接,递归课到达对象,如果不能从根对象到达,则将它进行回收。