在java中modify()有什么作用,java 编程
大家好,今天给各位分享在java中modify()有什么作用的一些知识,其中也会对java 编程进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
java activity
java activity是什么,让我们一起了解一下?
activity是Android组件中最基本也是最为常见用的四大组件之一。Activity也是一个与用户交互交互的系统模块,几乎所有的Activity都是和用户进行交互的,只需要提供一个屏幕,用户就可以用来交互为了完成某项任务。
java中的activity主要作用是什么?
首先在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,我们来了解一下MVC在Android开发中的应用。
M(Model模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的操作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。
V(View视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般采用XML文件里德界面的描述,使用的时候可以非常方便的引入,当然也可以使用JavaScript+Html等方式作为View。
C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model业务逻辑层处理。
这就是Android应用开发中的MVC架构,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的View,也可以从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。
实战中,Activity应该如何应用?
我们以Activity的启动过程为例,侧重于分析相关数据结构的构建与管理,以达到理解整个AMS对Activity的管理。
android中是通过Intent来启动一个新的activity的,因此AMS在得到请求启动activity时,首先需要根据Intent从PM中获得要启动的activity,PM通过parse每个application的AndroidManifest.xml来获得所有的activity信息,针对每个Intent提供的信息,PM会提供给AMS一个ResolveInfo对象。
startActivityMayWait()@ActivityManagerService.java// Don't modify the client's object! intent = new Intent(intent); // Collect information about the target of the Intent. ActivityInfo aInfo; try { ResolveInfo rInfo = AppGlobals.getPackageManager().resolveIntent( intent, resolvedType, PackageManager.MATCH_DEFAULT_ONLY | ActivityManagerService.STOCK_PM_FLAGS); aInfo = rInfo != null ? rInfo.activityInfo : null; } catch (RemoteException e) { aInfo = null; } if (aInfo != null) { // Store the found target back into the intent, because now that // we have it we never want to do this again. For example, if the // user navigates back to this point in the history, we should // always restart the exact same activity. intent.setComponent(new ComponentName( aInfo.applicationInfo.packageName, aInfo.name)); // Don't debug things in the system process if (debug) { if (!aInfo.processName.equals("system")) { mService.setDebugApp(aInfo.processName, true, false); } } }
java 编程
写好了发你看下代码有点长我在1.5的环境下写的你在1.4环境下稍微改下就OK
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
/**
*@author Think
*
*/
public class vvvvvv
{
/**
*
*/
public vvvvvv()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args){
// statTimes("");
vvvvvv instance= new vvvvvv();
List<student> parseList= instance.parseTxt("d:\\mydat\\student2006.txt",",");
instance.modify(parseList,"MATH","APMA");
student mStudent= instance.query(parseList,"200607016");
System.out.println("birthday:"+ mStudent.getMajor());//打印结果显示专业已被修改APMA
instance.outputTxt(parseList,"d:\\outpd.txt",",");//修改后重新保存为txt文件
}
/**
* TODO//处理txt文档
*
*@param path txt文件路径
*@param regex分割标志这里是","
*@return return:学生对象集合list
*/
List<student> parseTxt(String path,String regex)
{
try
{
BufferedReader br= new BufferedReader(
new FileReader(new File(path)));
String line;
ArrayList<student> stulist= new ArrayList<student>();
while((line= br.readLine())!= null)
{
String[] ss= line.split(regex);
student s= new student();
s.setStuno(ss[0]);
s.setName(ss[1]);
s.setBirthday(ss[2]);
s.setSex(ss[3]);
s.setMajor(ss[4]);
stulist.add(s);
}
return stulist;
}
catch(Exception e)
{
// TODO: handle exception
e.printStackTrace();
return null;
}
}
/**
* TODO将修改后的学生对象集合输出到txt文件
*
*@param contents
*@param path
*@param regex
* return: void
*/
void outputTxt(List<student> list, String path,String regex)
{
try
{
if(list== null) return;
PrintWriter pw= new PrintWriter(new File(path));
Iterator<student> it= list.iterator();
while(it.hasNext())
{
student stu=(student) it.next();
StringBuffer sb= new StringBuffer();
sb.append(stu.getStuno());
sb.append(regex);
sb.append(stu.getName());
sb.append(regex);
sb.append(stu.getBirthday());
sb.append(regex);
sb.append(stu.getSex());
sb.append(regex);
sb.append(stu.getMajor());
pw.println(sb.toString());
}
pw.close();
}
catch(Exception e)
{
// TODO: handle exception
e.printStackTrace();
System.out.println("output to:"+ path+"failed!!!");
}
}
/**
* TODO
*
*@param list
*@param oldmajor旧专业名
*@param newmajor新修改专业名
*根据指定条件修改这里修改专业
*@return void
*/
void modify(List<student> list, String oldmajor,String newmajor)
{
if(list== null) return;
Iterator<student> iterator= list.iterator();
while(iterator.hasNext())
{
student s= iterator.next();
if(s.getMajor().equals(oldmajor))
s.setMajor(newmajor);
}
}
/**
* TODO通过学号查询学生
*@param list student集合
*@param no学号
*@return
*/
student query(List<student> list, String no)
{
if(list== null) return null;
Iterator<student> iterator= list.iterator();
while(iterator.hasNext())
{
student s= iterator.next();
if(s.getStuno().equals(no))
return s;
}
return new student();
}
}
/**
*@author Think
*
*/
class student
{
public student(String no, String name, String birthday, String sex, String major)
{
this.stuno= no;
this.name= name;
this.birthday= birthday;
this.sex= sex;
this.major= major;
}
public student()
{
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name= name;
}
public String getBirthday()
{
return birthday;
}
public void setBirthday(String birthday)
{
this.birthday= birthday;
}
public String getSex()
{
return sex;
}
public void setSex(String sex)
{
this.sex= sex;
}
public String getStuno()
{
return stuno;
}
public void setStuno(String stuno)
{
this.stuno= stuno;
}
public String getMajor()
{
return major;
}
public void setMajor(String major)
{
this.major= major;
}
private String name;
private String birthday;
private String sex;
private String stuno;
private String major;
}
java mmap
java mmap是什么,让我们一起了解一下?
mmap是将一个文件或者其它对象映射进内存,文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。
目前Java提供的mmap只有内存文件映射,其他IO操作还没有内存映射功能。
Java内存映射文件(Memory Mapped Files)就已经在java.nio包中,但它对很多程序开发者来说仍然是一个相当新的概念。引入NIO后,Java IO已经相当快,而且内存映射文件提供了Java有可能达到的最快IO操作,这也是为什么那些高性能Java应用应该使用内存映射文件来持久化数据。
mmap在Java中的用途是什么?
1、对普通文件使用mmap提供内存映射I/O,以避免系统调用(read、write、lseek)带来的性能开销。同时减少了数据在内核缓冲区和进程地址空间的拷贝次数。
2、使用特殊文件提供匿名内存映射。
3、使用shm_open以提供无亲缘关系进程间的Posix共享内存区。
mmap在Java中是如何使用的?(具体参考kafka源码中的OffsetIndex这个类)
操作文件,就相当于操作一个ByteBuffer一样。 public class TestMmap {undefined public static String path = "C:\\Users\\64371\\Desktop\\mmap"; public static void main(String[] args) throws IOException {undefined File file1 = new File(path, "1"); RandomAccessFile randomAccessFile = new RandomAccessFile(file1, "rw"); int len = 2048;// 映射为2kb,那么生成的文件也是2kb MappedByteBuffer mmap = randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, len); System.out.println(mmap.isReadOnly()); System.out.println(mmap.position()); System.out.println(mmap.limit());// 写数据之后,JVM 退出之后会强制刷新的 mmap.put("a".getBytes()); mmap.put("b".getBytes()); mmap.put("c".getBytes()); mmap.put("d".getBytes());// System.out.println(mmap.position());// System.out.println(mmap.limit());//// mmap.force();// 参考OffsetIndex强制回收已经分配的mmap,不必等到下次GC, unmap(mmap);// 在Windows上需要执行unmap(mmap); 否则报错// Windows won't let us modify the file length while the file is mmapped// java.io.IOException: 请求的操作无法在使用用户映射区域打开的文件上执行 randomAccessFile.setLength(len/2); mmap = randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, len/2);// A mapping, once established, is not dependent upon the file channel// that was used to create it. Closing the channel, in particular, has no// effect upon the validity of the mapping. randomAccessFile.close(); mmap.put(128, "z".getBytes()[0]);}// copy from FileChannelImpl#unmap(私有方法) private static void unmap(MappedByteBuffer bb) {undefined Cleaner cl = ((DirectBuffer)bb).cleaner(); if (cl != null) cl.clean();}}
文章分享结束,在java中modify()有什么作用和java 编程的答案你都知道了吗?欢迎再次光临本站哦!