Java之速记(1) - 小结与疑惑
接触Java也有几个年头了,从对编程没有什么概念的新人(在大学里啃J2SE6.0编程指南),到工作用Play框架写一些简单的模块,再到用Structs2+Hibernate编写主要模块,再到现在独立开发Android项目,感觉一路走来实属不易。快过年了,最近公司也没什么事情和放假想把Java再深入下。接下来会罗列一些Java语言需要学习的知识点、一些问题和疑惑和一些将要深入的知识点,算是为即将学习的Java知识做一个铺垫吧。
1.首先说下Java语言(由于本人才疏学浅,也只能说个大概了,语言还是要系统的学习下)
a.基础语言知识
b.简单的数据结构
c.简单的理解堆栈
d.会用I/O流
e.几个简单的设计模式
在这里谈下语言的学习,刚开始也是死记硬背(人比较笨,没办法),有些知识点也是后来才慢慢理解的,映象最深的还是String,new String("11"); 和 String s = "11"的区别,以及它们的创建过程和生成几个拘留字符串对象和字符传对象。像这些知识点可能会在面试中碰到。
2.问题和疑惑
a.首先得说下关于try/catch/throws/throw的一些疑惑,下面这段代码是在某公司中的代码,该公司某某人还必须用这种模式来编写代码。
public void loginChecking(String username, String password) throws Exception {
if(username == null || "".equals(username.trim())) {
new Exception("用户名不能为空");
}
if(username.length() < 6 || username.length() < 18) {
new Exception("用户名长度不能小于6位或大于18位");
}
if(password == null || "".equals(password.trim())) {
new Exception("用户名不能为空");
}
if(password.length() < 6 || password.length() < 18) {
new Exception("用户名长度不能小于6位或大于18位");
}
//...
}
这是一个自己写的简单登录验证的几行类似代码,这片代码我一直都存在一点疑惑,虽然这样写代码整体会好看些,但是。。记得《Effective Java》中有一句话——异常应该只适用于异常的情况下,他们永远不应该用于正常的控制流程。虽然对事物
应该持有怀疑的态度,但是书中也解释了此说法的正确性,毕竟该作者还是比较权威的。
b.第二个问题是关于继承重写,首先构造一个实体类(也是我在平时开发中的一个小小的经验),OverlayItem的API是com.baidu.mapapi.map.OverlayItem,即百度地图上的一个实体类,但是我在数据的传递过程中要 绑上自己想要带的数据,所以用
这种方法来实现,其实这个方法很常见,在这里简单的提下(给初学者总结点经验)。
class _OverlayItem extends OverlayItem {
private _GpsEmp gspEmp;
private _Project gspPro;
public _OverlayItem(GeoPoint arg0, String arg1, String arg2) {
super(arg0, arg1, arg2);
}
public void setGspEmp(_GpsEmp gspEmp) {
this.gspEmp = gspEmp;
}
public _GpsEmp getGspEmp() {
return gspEmp;
}
public void setGspPro(_Project gspPro) {
this.gspPro = gspPro;
}
public _Project getGspPro() {
return gspPro;
}
}
Java之速记(1) - 小结与疑惑的更多相关文章
- Java内部类的使用小结
转载:http://android.blog.51cto.com/268543/384844/ Java内部类的使用小结 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可 ...
- Java JDBC 数据库链接小结随笔
Java JDBC 数据库链接小结随笔 一.链接数据库的步骤 二.关于Statement 和 PrepareStatement 两者区别 用法 三.关于 ResultSet 的一些小结 四.自定义 ...
- Java JDBC基础学习小结
JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作.JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver.Connection.Statement.Re ...
- Java 相关注意事项小结
程序是一系列有序指令的集合: Java主要用于开发两类程序: 1)桌面应用程序2)Internet应用程序1,Java程序:三步走,编写--编译--运行:2,使用记事本开发:1)以.java为后缀名保 ...
- [转载] Java集合框架之小结
转载自http://jiangzhengjun.iteye.com/blog/553191 1.Java容器类库的简化图,下面是集合类库更加完备的图.包括抽象类和遗留构件(不包括Queue的实现): ...
- Java 各种锁的小结
一. synchronized 在 JDK 1.6 之前,synchronized 是重量级锁,效率低下. 从 JDK 1.6 开始,synchronized 做了很多优化,如偏向锁.轻量级锁.自旋锁 ...
- java反射机制学习小结
之前一直对java的反射机制理解得很模糊,今天因为学习spring,所以花了些时间总算把它理顺了,记录一下 另外,推荐读读这篇文章,写的挺好的http://blog.csdn.net/woshixuy ...
- java 中的equals()小结
转载自http://www.cnblogs.com/jackyrong/archive/2006/08/20/481994.html Java中的equals是十分重要的,和= =要区别开来,最近在看 ...
- List接口方法使用(PS:Java 编程思想阅读小结)
1.用代码说话 package JavaProject; import java.util.*; public class A{ public static void main(String[]arg ...
随机推荐
- Dubbo整合SpringCloud图片显示问题
Dubbo整合SpringCloud图片显示问题 Tips:公司项目,记录一点经验吧,理解的不对的地方欢迎大神指点 问题:商品图片上传功能(公司没有专门文件服务器)写的保存目录直接是保存在docker ...
- 函数调用过程中,函数参数的入栈顺序,why?
C语言函数参数入栈顺序为从右至左.具体原因为:C方式参数入栈顺序(从右至左)的好处就是可以动态变化参数个数.通过栈堆分析可知,自左向右的入栈方式,最前面的参数被压在栈底.除非知道参数个数,否则是无法通 ...
- keystone 命令简要说明
catalog: keystone catalog 可以显示所有已有的service keystone catalog --service service-type 显示某个service信息 end ...
- OC利用正则表达式获取网络资源(网络爬虫)
在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在这种情况下,我们可能要写一个爬虫来爬我们所需要的数据.一般情况下都是利用正则表达式来匹配Html,获取我们所需要的数据.一般情况下分以下三 ...
- 用CSS3来代替JS实现交互
[CSS3和JS] 对于CSS了解的同学都知道,CSS的实现是最底层的,在实现方式和性能上都不是,JS这种提供接口的脚本可比的:从CSS3的动画和JS动画对比角度来看两者,会更清晰:而且随着前端框架的 ...
- win7 系统装SQLServer2000 成功
昨天在win7上装SQLServer数据库,写一下体会.首先,如果以前安装的话,要删除干净.我也找了半天的网络资料.1.把原来SQLServer的安装目录 C:\Program Files\Micro ...
- What is the fastest way of (not) logging?
原文地址:http://www.slf4j.org/faq.html#logging_performance SLF4J supports an advanced feature called par ...
- 一次delete速度异常慢的处理过程
InnoDB delete from xxx速度暴慢原因 博客分类: database MySQLPythonMobile多线程SQL step1,一个简单的联系人表 CREATE TABLE `c ...
- 推荐一份 Google 面试指南
经常有不少读者在我公众号后台留言,说自己还是应届毕业生,缺乏工作经验与项目经验,不知道如何才能通过面试? 其实,项目经验固然重要,但是企业也知道,对于应届毕业生,是很难有拿得出手的项目经验出来的,毕竟 ...
- ECMAScript新特性【一】--Object.create
Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数: prototype 必需. 要用作原型的对象. 可以为 nu ...