做为一名初涉安卓的菜鸟,最近在使用Android动态布局时,碰到了一些坑点,今天就总结一下。原本是父布局RelativeLayout里面嵌套了一个子布局LinearLayout,而我现在想要动态调整这个LinearLayout的高度,但是在这里碰到了两个问题。 1.设置动态布局后没有效果。 原因:在设置动态布局时未指明其父布局。因为子布局属性的修改也是相对于父布局而言的。而我在使用的时候是用子布局来进行声明,所以导致了这个问题。 修改代码: int height = 66; RelativeLayout.LayoutParams heightParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, height); linearContain.setLayoutParams(heightParams); 2.我在按照1的方法进行了修改之后,确实所设置的动态调整有了 继续阅读 >>


胡嘉辉 17/08/14 17:05:52
      之前在学习java时没有认真看java注解这部分,最近在熟悉项目代码时,看到里面代码中很多地方都用了java注解这些东西,关于这部分在这里做个总结。       java注解,也称元数据,一种代码级别的说明。它是JDK1.5以及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 1.java的内置注解 (1)@override       用于检验方法是重写方法,如果当父类的方法被移除或者发生更改时编译器会提示错误信息。 (2)@Deprecated       用它标识的方法表示该方法不建议使用,但是并不影响程序的编译,但有时编译器会显示一些警 继续阅读 >>


胡嘉辉 17/07/25 21:25:36
最近在学习android方面的知识,今天看到了关于使用PULL和SAX两种不同方式解析xml文件,在这里简单总结一下。 SAX是一种基于“推”的解析方式,它是自动将事件推入注册的事件处理器进行处理,所以你不能控制事件处理的主动结束。在使用SAX方式解释xml文档时,它不会一次将整个的文档读入内存在进行解析,而是在我们读取文档的过程中就对它进行解析,但是SAX在解析xml文档时,还是要遍历完毕文档中的所有节点的。所以当我们需要某一个xml文档中的前边某一部分时,如果我们采用这种方式的话,会十分浪费资源。 PULL是一种基于“拉”的解析方式,应用程序可以根据我们自己的需要来控制解析器的读取。我们可以让应用程序代码主动从解析器中获取事件,这样的话当我们获取到满足我们需要的内容后,就可以结束解析。 下面是关于两种方式解析xml文件的简单例子 1.需要解析的xml文件如下: <apps> <app> <id>1</id> 继续阅读 >>


胡嘉辉 17/07/21 20:41:12
 在平时写项目的过程中,通常在返回视图页面的时候,大多都是使用Model,ModelAndView这两个类,今天就总结以下这两个的使用和区别,避免使用中的一些小坑点。 @Controller("Test") public class Test{ @RequestMapping("") public ModelAndView one(){`这里写代码片` ModelAndView mav = new ModelAndView("index"); mav.addObject("name","aaa"); mav.addObject("sex","男"); return mav; //跳转到某一路径下的index.jsp页面 } @RequestMapping("") public String two(Model model){ model.addAttribute("name", 继续阅读 >>


胡嘉辉 17/02/22 01:55:40
最近在maven下使用ssm框架(spring,springMVC,mybatis)进行练习,在这里就简单总结一下一个ssm框架的基本搭建过程。 在这里你首先要创建一个maven项目    在创建过程中你要注意在这里添加一个参数archetypeCatalog=internal , 如果你没有添加这个参数,在maven生成骨架的时候会非常慢,有时候甚至会卡住。archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的archetype太多了,所以导致很慢,指定为internal就表示仅使用内部元数据。 2.在创建好maven项目后,创建好自己的项目结构 3.修改pom.xml文件, 因为使用maven管理项目,所以可以通过pom.xml来直接导入jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns: 继续阅读 >>


胡嘉辉 16/12/01 09:52:17
今天在做一个小练习的时候,遇到一个让我很想不通的问题。今天在自己在写java web小练习时,在servlet中添加一个过滤器,让这个过滤器实现根据不同权限限制访问不同的页面功能。当我在web.xml中配置好过滤器后,并在maven下布署运行,发生了很”神奇”的现象。 这是我的项目目录结构 在过滤器里我设置了当管理员登录时可以访问管理页面(即html文件里的html文件),而当普通用户登录时只能进行密码修改操作(即a文件夹下的html文件)。而当我运行项目时,却发现管理员和用户都可以访问两个文件夹下的文件,或者有时只能访问规定目录。@——@!!!!之后在进行测试时发现有时当访问页面时并不会进行过滤操作。而之后当我把html文件改为jsp时,用户一切访问正常。 后来在网上进行了查找,发现原来一切都是浏览器对html页面的缓存问题!!!!!!!当使用第一次访问html文件时,浏览器会对服务器进行页面请求,随即进行解析显示,而这时浏览器就会对该页面进行缓存,当你下一次访问该页面时,浏览器就会不经过服 继续阅读 >>


胡嘉辉 16/11/09 21:57:43
前不久编译原理学习了词法分析,自己实现了一个简单的c语言词法分析器,来加深对词法分析器原理,状态转换图,有限自动机的理解。 当我们想在电脑上运行一个c语言程序时,都要将源程序进行编译。编译简单来说就是将一个源程序转换为另一种形式的程序的过程。而编译中的词法分析就是将你所输入的各种元素按照一种规则分解整理成各种单词符号,包括关键字,标识符,运算符等。 在这个词法分析器中我把不同的单词符号分为了界符,运算符,数字,标识符,关键字五大类。 1、界符:左右中括号(‘[‘ 、‘]’) ,左右小括号(‘(‘、’)’), 分号(’;’), 空格(‘ ‘),逗号(‘,’), 大括号(‘{‘、’}’), 双引号(‘ “ ’),井号(‘#’)。 2、运算符:+,-, *, /, +=, ++, --, *=, -=, /=, ==, &, &&, |, || 3、数字:所有数字组成的集合。 4、标识符:以下划线或数字为开头,其余由数字,下划线,字母任意组成的集合。 5、关键 继续阅读 >>


胡嘉辉 16/11/04 21:24:50
在web应用编程中,session与cookie都是很重要的东西,最近通过搜索整理了一些相关资料,现在就简单说说两者之间的区别。 关于cookie: cookie是在客户端保存一些信息。cookie的内容主要包括名字,值,过期时间,路径和域。路径和域一起构成cookie的作用范围。如果不设置过期时间,则表示这个cookie的生命期为浏览会话期间,关闭浏览窗口,cookie就消失。这种生命期为浏览会话期的cookie称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,但是这种行为并不是规范规定的。若设置了过期时间的话,浏览器就会把cookie保存在硬盘上,当你关闭浏览器再次打开时这些cookie依然有效直到超过设定的过期时间。 关于session: session在web开发中是一个重要的概念,这个概念很抽象,很难定义,在这里我们来探讨http session. 在计算机中,尤其是在网络应用中,称为“会话控制”。session对象则是在服 继续阅读 >>


胡嘉辉 16/10/07 22:21:50
  在写代码时,碰到了有关单例和静态类两者之间选择的问题。今天就小小的总结一下两者的区别。      首先我大概介绍一下什么是单例模式和静态类。   单例模式是java中一种常见的设计模式,单例模式具有以下特点: 1.单例类只能有一个实例 2.单例类必须自己创建自己的唯一实例 3.单例类必须给所有其它对象提供这一实例   单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式就是为了避免不一致状态,避免政出多头。正因为如此,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其它对象读到一致的信息。      而静态类就可以简单理解为一个所有方法都是静态方法的类。      在了解了它们是什么东西之后,你肯定很好奇这两者之间又有什么异同呢?它们俩都具有良好的访问性,并且使用时都不需要创建对象,都可以提交唯一实例。我在这里主要说说它们之间的不同。 1.单例可以被延迟初始化,在需要时加载不需 继续阅读 >>


胡嘉辉 16/09/19 14:19:41
在学习java网络编程时,我遇到了同步/异步,阻塞/非阻塞着四种调用方式。在这里我就大概的说一下我对它们的理解。 同步/异步主要针对客户端:         同步:就是当客户端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是说必须一件一件的事情去做,等一件做完了才能去做下一件。          异步:就是当客户端发出一个功能调用时,调用者不用等接收方发出响应。实际处理这个调用的部件在完成后,会通过状态,通知和回调来通知调用者。客户端可以接着去做 后面的事情。         虽然主要是针对客户端,但是服务器端不是完全没有关系的,同步/异步必须配合服务器端才能实现。同步/异步是由客户端自己控制,但是服务器端是否阻塞/非阻塞,客户端完全不需要关心。 阻塞/非阻塞主要是针对服务器端:         阻塞:阻塞调用是指服务器端被调用者调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。         非阻塞:指在不能立即得到结果之前,该调用不会阻塞当前线 继续阅读 >>


胡嘉辉 16/09/05 12:26:21