android(eclipse)编程中常见的java问题总结(四)
0:java流: 流是具有方向的 在文件操作中java流分为字节流:Filereader和Filewriter字符流:FileOutputStream,FileInputSream 例如在文件存储操作中:
pulic void save(){
String data="data to save";
FileOutputSream out=null;
BufferedWriter writer=null;
try{
out=openFileOutPut ("data_name",Context.MODE_PRIVATE);
writer=new BufferedWriter(new OutputStream(out));
writer.write(data);
}catch(IOException e){//平时使用的是Exceotion e
e.printStackTrace();
}finally{
try{
if(writer!=null){
writer.close();
}
}catch(IOException e){
e.printStackTrace();}
}}
1:Java中,类不实例化是可以调用方法的,这种方法叫做静态方法,也叫做类方法。静态变量
类的静态方法不属于类的对象,而属于类本身,在该类首次使用的时候加载到系统的方法区中,一般 可以使用类名直接调用类的静态方法,而不需要实例化对象。由于 静态方法并不属于对象,因此在静态方法中无法操作类的普通成员变量,只能操作类的静态成员变量。 (因为普通成员变量依附于类的对象存在,而类的静态方法并不属于类对象,在类对象被实例化之前 静态方法就已经存在,故在静态方法中操作普通成员变量,相当于在无对象的情况下对其中的成员变 量进行操作,这是无意义的,同时也不符合面向对象的思想。) 在静态方法中可以操作类的静态属性,而静态属性是类的属性,可以作为一次程序运行期间的全局变 量来使用,因此静态方法的主要作用就是对类中静态属性的 初始化或者根据静态属性实现一定的业务逻辑。
2:关于深拷贝和浅拷贝的运用 (创建实例对象)
浅克隆,通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。: 深克隆,克隆的时候会复制它的子对象的引用,里面所有的变量和子对象都是又额外拷贝了一份。 克隆是为了增加元数据的完整不破坏性,这种方法会独立使用子对象。
3:!"".equals(content) // 一个非空判断语句 content的值不为空
4:padding margin
padding说的是控件内部的间隔逻辑,即控件里面的内容与控件自身边缘(上下左右)的距离,而margin说的是 控件自身与其他相邻控件(上下左右)之间的距离。
5:关于throws
throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主 函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。如下面例子所示:
static void pop() throws NegativeArraySizeException {
//定义方法并抛出NegativeArraySizeException异常
int [] arr = new int[-3];//创建数组
}
public static void main(String[] args) {//主方法
try {
pop(); //调用pop()方法
} catch (NegativeArraySizeException e) {
System.out.println("pop()方法抛出的异常");//输出异常信息
}
}
6:r.layout.**与r.id.** 引入布局文件和引入控件实例 一般是先引入布局在引入该布局中的控件实例
7:除了给按钮获取到布局控件时还有什么时候需要用到类型转换?
为什么要类型转换 1)findViewById(R.id.button).getClass().getName(); 2)Button button = (Button) findViewById(R.id.button);
button是view的子类但是就像车子有很多种,如果不指定是摩托车还是自行车的话就不知道到底 找的是哪种车,所以要转换。
什么时候需要转换:只要是返回值的类型和你需要的类型不一致或者是返回类型为父类但是你需要子类的时候就要强制类型转换
8:关于objiect Object 数据类型可以指向任意数据类型的数据,包括您的应用程序识别的任意对象实例。当您在编译 时不知道变量可能指向哪种数据类型时,就用 Object。
9:空字符串和null有什么区别: null代表内存中根本没有这个东西但是空字符串的话是占有一定空间的只是里面没有内容
10:.isEmpty()和.equals("")方法去判断空有什么区别? 仔细读官方的API: Returns true if the string is null or 0-length. 因为你从EditText返回的 是一个变量。如果这个变量本身为null值,那么你掉它的equals方法是要报错的。但是如果你调用TextUtils.isEmpty() 把这个变量作为参数传进去。只要这个参数为空或者为“”,都会返回真。所以,用官方给的更加严谨。而且。也十分方便。 因为你单独去判断你还不是要写一个if语句判断。返回的还是一个boolean值,为何别人铺好的路不走呢? 还有==null
The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int) context的参数没弄正确要制定当前的类对象
11:@Override到底有什么用
@override有注释文档的作用,可有可无有点像鸡肋但它对于编程粗心的人可是个很人性化的功能 如果想重写父类的方法,比如toString()方法的话,在被重载的方法前面加上@Override ,这样编译的时 候系统可以帮你检查方法的正确性,如下
@Override public String toString(){...}这是正确的 如果将toString写成tostring @Override public String tostring(){...}编译器可以检测出这种写法是错误的,提醒你改正 而如果不加@Override public String tostring(){...}这样编译器是不会报错的,它会认为是你在类中加的新方法
12:什么叫做抽象类?
一种特殊的类,并且不能被实例化,这点和接口十分像。抽象类可以包括抽象方法,这是普通类所不能的。抽象方法 只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。
13:this,super怎么用,有什么区别?
this一般是指当前对象 super指父类的对象 this:1)引用当前对象的方法时要用但是并不是必须2)当传入的参数和当前对象的参数相同则必须指明谁是谁
使用super:
class Person{
public int c;
String name;
private int age;
protected void setName(String name){
this.name=name;
}
protected void setAge(int age){
this.age=age;
}
protected void print(){
System.out.println("Name="+name+" Age="+age);
} public class DemoSuper extends Person{
public void print(){
System.out.println("DemoSuper:");
super.print();
}
}
}
android(eclipse)编程中常见的java问题总结(四)的更多相关文章
- 并发编程中.net与java的一些对比
Java在并发编程中进行使用java.util.concurrent.atomic来处理一些轻量级变量 如AtomicInteger AtomicBoolean等 .Net中则使用Interlocke ...
- Unity3D游戏开发之C#编程中常见数据结构的比较
一.前言 Unity3D是如今最火爆的游戏开发引擎,它可以让我们能轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型的互动内容.它支持2D/3D游戏开发,据不完全统计,目前国内80%的手机游戏都 ...
- python编程中常见错误
python编程培训中常见错误最后,我想谈谈使用更多python函数(数据类型.函数.模块.类等)时可能遇到的问题.由于篇幅有限,我们试图将其简化,特别是一些高级概念.有关更多详细信息,请阅读学习py ...
- 跟着拉大锯大神学Android——网络编程中运行后台服务器端口占用问题
拉大锯网页地址:https://www.sunofbeach.net/u/1153952789488054272 跟着拉大锯大神学Android,在学到网络编程时,使用了大神搭建的用于学习的后台服务器 ...
- 网络编程中常见地址结构与转换(IPv4/IPv6)
1. sockaddr/sockaddr_in/in_addr (IPv4).sockaddr6_in/in6_addr/addrinfo (IPv6) struct sockaddr { unsig ...
- Eclipse编程中免除alt+斜杠,设置自动提示
用eclipse进行编程时,设置自动提示 .abcdefghijklmnopqrstuvwxyz@
- Java编程中的一些常见问题汇总
转载自 http://macrochen.iteye.com/blog/1393502 每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题.虽然一般 ...
- android: 多线程编程基础
9.1 服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使 ...
- Android UI编程之自定义控件初步——ImageButton
我想我们在使用一些App的时候,应该不会出现一些“裸控件”的吧.除非是一些系统中的软件,那是为了保持风格的一致性,做出的一些权衡.我这里并非是在指责Android原生的控件不好看,说实在的,我很喜欢A ...
随机推荐
- Oracle关于All和Any
简单的说 All等价于N个And语句,Any等价于N个or语句.
- HDU 5316——Magician——————【线段树区间合并区间最值】
Magician Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- [转]ASP.NET Core Exception Filters and Resource Filters
本文转自:https://damienbod.com/2015/09/30/asp-net-5-exception-filters-and-resource-filters/ This article ...
- Javascript 对象Object
1.new构造函数法 2.对象字面量 对象字面量很好理解,使用key/value的形式直接创建对象,简洁方便. 这种方式直接通过花括号将对象的属性包起来,使用key/value的方式创建对象属性, ...
- 实现JFileChooser的多种文件类型限制(设置过滤器)
使用时直接调用方法. // 多类型时使用 public void FileFilter(JFileChooser F) { String[][] fileNames = { { ".java ...
- MySQL判断一个字段不包含中文
中文=2个字节,英文或数字=1个字节,因此我们用mysql中两个函数比较字节和字符的长度是否相等来判断是否包含中文 select * from user where CHAR_LENGTH(name) ...
- Vue2.0以后,有哪些变化
最近移动端项目版本升级,Vue由之前的1.0升级到2.3,那么,Vue2.0之后,有哪些细节的变化呢,现在总结如下: 1.在每个组件模板,不再支持片段代码 组件中模板: 之前: <templat ...
- 关于easyui 圆角按钮在ie9不能隐藏
(一)在easyui框架里 在a标签里添加class='easyui-linkbutton' 如: (二)问题:在ie9里圆角背景overflow:hidden 不起作用 (a)框架内 html 部分 ...
- Java操作Mongodb(转载)
好文章,值得收藏 HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mo ...
- android launcher
1.android_launcher的源码详细分析 2.android---launcher 3.Android 4.4 Launcher3桌面源码分析 4.通过深度剖析Android之Launche ...