SXT_项目
30.
svn服务器运行方式:
- svnserve:自己做实验的时候用。
- svn&apache结合起来用。【常用的】
29.
EXTJs not Jquery【根据项目组需求】
28.
tags(lable)
- svn
- 上传:check in
- 下载:check out(commit)
27.
静态方法没有this
- Properties类
- Singleton模式(单例模式)(只需从硬盘里面拿一次,放到内存里,还是定义成static的,是放到data区的,提高了效率。)
26.
静态代码区:
static {
}
- 这个class第一次load到内存里面的时候,一定执行此区域的代码。
- 最适和给变量做初始化。
- 也可以放语句。
25.
异步IO。
虚代理。
24.
boolean flag = false;
- 代码这样写: if (!flag) 或者 (flase == flag) 不要这样写(flag == false)【因为第三种写法,如果少写一个等号,不会报错。但是if {} 里面的东西肯定不会执行】
23.
java.awt.Toolkit通过toolkit可以拿到适合 操作系统 去做的事情。【硬件信息等等】
- 图片写成静态的,因为没必要 每new一个 对象,就从硬盘里面 拿一次图片。load一次,大家一块用就成了。
- 拿到图片,是用getImages(String)还是getImages(URL)?
- getImages(string)的方式,无论相对路径还是绝对路径都不太合适。
- getImages(URL)的方式用的比较多。tk.getImage(Explode.class.getClassLoader().getResource("images/0.gif")) 【 反射机制 】【getResource就会找遍classpath】
- 只要把images放到classpath目录下面,上面的方法 就可以 通过classpath来找到 那些图片。【不依赖相对和绝对路径,只依赖 images目录 放没放到class path里面 】
- java.lang.Class对于编译好的某一类对象的描述【对 类装载器来说,当它把编译好的class文件 拿到 内存里面的时候,这些class文件 就像是一个个的对象。java.lang.Class这个类就是对于这些对象的描述】 『这个对象。要装载到内存里面的(class文件)对象』
- 对于classloader,每一个 .class 实际就是一个Class对象。
- java.langClass是对类信息的描述,是类的metainfo/metadata。
- static
- 基本反射
- getResource classpath来找images
- tk.getImage(Explode.class.getClassLoader().getResource("images/0.gif")) 将要被classloader装到内存里面的Explode这个class,拿到这个class的classloader,调用clasloader的getResource方法,此方法会找遍classpath,其返回值是URL.
22.
如果你在修改时,修改某个类牵扯到的 别的类 地方比较多,那说明你设计的不太合理。
21.
出界,设置为最大;
撞墙,记录oldX,oldY。上一步的位置。
20.
碰撞检测:
- 游戏中一般使用别人写好的类库。而不是自己去写算法。
- 碰撞检测比较复杂。
19.
debug:
- 跟思路结合起来。
- 怎么样一步一步跟踪代码;
- 怎么样设置断点;设置合适的断点;
- 学会在运行中观察变量的值。
18.
v0.7重要版本:面向对象的思考方法
- 不要上来就第一步,第二步,而是 :
- 问题域里有哪些类?
- 类属性,方法(首先考虑构造方法)。
- 合适的方法出现在合适的类里面。
17.
v0.5
- 定义常量以 应对将来的改动。
- public static final
16.
//Graphics :画笔
15.
v0.4.1
使用双缓冲解决闪烁现象
- 原因:
- 刷新重画频率太快,paint方法还没有完成;(sleep的时间太短)
- 逐条显示
- 解决:
- 将所有的东西画在一张虚拟图片上,一次性显示出来
- 即:在重写update方法里面实现。
14.
v0.4让坦克动起来:
- 将位置改为变量
- 启动线程不断重画
- 不用按键进行重画的原因:
- 线程重画更均匀,更能控制子弹的飞行;
- 按键重画不能解决将来子弹自动飞行的问题;
- 每次重画,改变坦克的位置
13.
豆绿的颜色 RGB(199, 237, 204)
new Color(199, 237, 204)
12.
- 关闭窗口有三种方式:
- 并排的类;
- 内部类;(不方便公开的,只为外部包装类服务)
- 匿名类;(一般是用的这种)(通常不会给别的类提供服务)
- 类代码少
- 不涉及将来的扩展
- 不涉及重要的业务逻辑
11.
- 窗口显示两种方式:
- new Frame;
- 从Frame继承。(推荐)(可以设置自己的成员变量)
10.
- 瀑布式:
- 需求分析。
- 设计。
- 写代码。
- 测试。
- 螺旋递增式:
- 先写核心功能,边缘功能不着急。
- 加入一点功能,先验证下。一步一步来。
- Missile类时用到的:
- 不一定一次写到位
- 进行多次试验
- 将步骤分解开来逐一进行调试
- 随版本,添加新功能。
9.
命名/格式:(见名知意)
- 见名知意
- 类名首字母大写
- 方法名、变量名首字母小写
- 应用驼峰标识
常用编程方法:
- getters setters
- 持有对方引用
- 定义常量
- 保留 各个版本
- 学会版本比较
8.
- 面向过程
- 第一步,第二步.........
- 面向对象
- 这个问题里有哪些类,类里有哪些对象
7.
坦克大战:
- 不必太关注细节
- 不必非得把某个类的所有细节全了解清楚再动手
- 不必追求完美
- 关键是写完,想方设法让它运行起来
- 。
- 太关注细节,追求完美,到时候运行不起来,没有成就感,就会让自己的热情减退
- 量变引起质变
- 写多了,细节自然就会清楚。
*******************************************************************************
6.
- 在单独的监视线程里面,去除 退出的客户端。
- 还监视多久没联系了。
- 监视线程使用另外的端口。
- f
- 其他功能:
- 登录的时候注册名字。
- 显示的时候,前面加上名字。
- 密谈。
- 过滤特殊字符,换成表情。
5.
让线程停止的方式:
- boolean
- join().
- join的时候,如果线程阻塞住了,可以等它一定时间(单独的线程用来监听)。此段时间内没反应,停掉。
- catch到exception的时候退出。【这样的逻辑不好,还是用join方法比较好】
4.
Chat:
- 接收和处理数据的问题:
- 异步I/O
- 多线程:
- 接收客户端连接
- 处理客户端数据
5.
Iterator遍历 会锁定,效率不高。
可以使用类似数组似的循环来遍历。
- clients 是List集合。
- for(int i=0; i<clients.size(); i++) {
- }
4.
面向对象的思维:
- main方法就是个大管家。所以具体的实现 封装到方法里。start方法。launchFrame方法。
- 功能封装到方法里。
3.
- 选择内部类、匿名内部类还是外部类:
- 是否 需要给 别的类 提供服务。
- 代码多,不要用匿名内部类。
- 传递属性常用方式:
- 构造方法。
- static的main方法里不能new一个 内部类的 非static 的对象。
- new的时候放进一个方法里,然后在main方法里调用这个方法。
2.
- 调试性的语句写到最左边。(习惯)
- 写完之后可能要注释掉。
- try catch 写在最外面,尤其是和while循环在一起写的时候。
1.
- 为防止不同项目之间的源文件混淆,关闭不用的Project。
- 版本控制。
- 程序是调试出来的。多调试。
- 先写主干,再去修饰细节。
- 如果有问题,按照执行顺序,一环一环的检查。
SXT_项目的更多相关文章
- Fis3前端工程化之项目实战
Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- Travis CI用来持续集成你的项目
这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
随机推荐
- VMware Workstation(虚拟机)v10.0.1 简体中文破解版
http://www.xp510.com/xiazai/ossoft/desktools/22610.html
- win7,xp通用的打开文件浏览对话框的方法
第一种:Function BrowseForFile() Dim shell : Set shell = CreateObject("WScript.Shell") ...
- margin:0 auto在IE中失效的解决方案
转自:http://www.cnblogs.com/hongchenok/archive/2012/11/29/2795041.html 最近在开发项目的时候,发现在火狐浏览器中设置外容器margin ...
- linux vim 替换指定字符为回车
有个问题,想要知道逗号分隔的字符串 example: aaa,bbb,ccc 分隔后的个数 1 将 aaa,bbb,ccc 替换成 aaa bbb ccc 方法: :%s/,/^M/g ^M是用 ...
- html a tag's href javascript issue
a标签的href中写js中遇到的问题(ie中有问题,chrome没问题) <a class="free" href="javascript:{$('#suiteTy ...
- VS&SQL StartUp Crash - CLR20R3
VS2013和SQL Management Studio 在启动时直接崩溃,错误提示CLR20R3,问题签名4是windowsbase, 这说明是操作系统的问题导致启动崩溃,在网上找到一些解决方案: ...
- LZW压缩算法
转载自http://www.cnblogs.com/jillzhang/archive/2006/11/06/551298.html 记录此处仅自己供学习之用 lzw解压缩算法: 用单个字符初始化字符 ...
- Python UTF8 读取文件
严禁伸手党:
- 分布式HBase-0.98.4环境搭建
fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3804072.html 本文有点简单,详细版本请参见<分布式Hbase-0.98.4在 ...
- Selenium2+python自动化15-select下拉框
前言 最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持. 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关 ...