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 ...
随机推荐
- 机器学习——XGBoost
基础概念 XGBoost(eXtreme Gradient Boosting)是GradientBoosting算法的一个优化的版本,针对传统GBDT算法做了很多细节改进,包括损失函数.正则化.切分点 ...
- 几道web题简单总结
拖了好长时间,总结一下这一段时间做的几道值得记录一下的题目,有的没做出来,但是学习到了新的东西 1.homebrew event loop ddctf的一道题目,学到了python eval函数的用法 ...
- hihoCoder题目之Magic Box
#include <iostream> #include <cmath> #include <cstdio> using namespace std; void s ...
- C# 安装WindowService服务和相关
https://www.cnblogs.com/charlie-chen2016/p/8031774.html 这是一个备份数据库的服务,逻辑很简单,就是通过定时器实现在特定的时间执行SQL语句备份数 ...
- SpringSecurity 3.2入门(4)登录密码加密
密码admin 进行MD5 32位加密为21232F297A57A5A743894A0E4A801FC3 增加spring-security.xml文件配置如下 <!-- 认证管理器,配置Spr ...
- javaSE练习13——(知识点:类的继承 方法的覆盖)
设计2个类,要求如下: (知识点:类的继承 方法的覆盖)1.定义一个汽车类Vehicle, 1.1 属性包括:汽车品牌brand(String类型).颜色color(String类型 )和速度spee ...
- [SQL SERVER系列]工作经常使用的SQL整理,实战篇(一)[原创]
工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇(三) 目录概览: 1.数据库 2.表 3 ...
- Visual Paradigm for UML 10.0 SP1 企业中文下载地址、安装及激活详解教程
https://blog.csdn.net/u013354805/article/details/46531833
- SQLAlchemy的使用---外键ForeignKey数据库创建与连接
# 一对多建表操作 from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() from sql ...
- HihoCoder#1279 : Rikka with Sequence(dp 枚举子集 二进制 神仙题)
题意 题目链接 Sol 不愧是dls出的比赛啊,265个交了题的人只有8个有分Orz 做完这题,,感觉自己的位运算dp姿势升华了... 首先最裸的dp应该比较好想,设\(f[i][j][k]\)表示前 ...