1. 如何用Java写一个手机界面的代码
import java.awt.dimension; import java.awt.toolkit; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jpasswordfield; import javax.swing.jtextfield; public class test26 { public static void main(string[] args) { final string username = "abc"; final string passwrod = "123"; jframe jframe = new jframe("登陆界面"); dimension dimension = toolkit.getdefaulttoolkit().getscreensize(); jframe.setbounds(((int)dimension.getwidth() - 200) / 2, ((int)dimension.getheight() - 300) / 2, 200, 150); jframe.setresizable(false); jframe.setlayout(null); jframe.setdefaultcloseoperation(jframe.exit_on_close); jlabel label1 = new jlabel("姓名"); label1.setbounds(10, 10, 100, 30); jframe.add(label1); jlabel label2 = new jlabel("密码"); label2.setbounds(10, 40, 100, 30); jframe.add(label2); final jtextfield text1 = new jtextfield(); text1.setbounds(50, 15, 130, 20); jframe.add(text1); final jpasswordfield text2 = new jpasswordfield(); text2.setbounds(50, 45, 130, 20); jframe.add(text2); jbutton button = new jbutton("login"); button.setbounds(10, 75, 170, 40); button.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { if(username.equals(text1.gettext()) && passwrod.equals(text2.gettext())) { joptionpane.showmessagedialog(null, "登陆成功误", "提示", joptionpane.information_message); } else { joptionpane.showmessagedialog(null, "错误", "提示", joptionpane.error_message); text1.settext(""); text2.settext(""); } } }); jframe.add(button); jframe.setvisible(true); } }我有一个微信公众号,经常会分享一些java技术相关的干货,还有一些学习资源。
如果你喜欢我的分享,可以用微信搜索“java团长”或者“javatuanzhang”关注。
2. 怎么用手机编写java整人手机代码
BEGBEGIN:IMELODY
VERSION:1.2
FORMAT:CLASS1.0
COMPOSER:MIK(23)Fomat
BEAT:180
MELODY:backoffbackofffbackoffbackoffbackoffbackoffbackoffbackoffbackoff
("+<melody>+"@9999999999999999999999999)"
手机黑屏代码
BEGIN:IMELODY
BEAT:1200
MELODY:(ledoffbackoffvibeoffr5ledoffbackoffvibeoffr5@600)
END:IMELODY
手机狂震代码
BEGIN:IMELODY
VERSION:1.2
FORMAT:CLASS1.0
BEAT:100
MELODY:(ledoffledonbackoffbackonvibeon@0)
END:IMELODY
说明
<1>; “@”后面的数字越大,重复次数越多
<2>;把上面代码复制,在计算机上保存为.txt文本文件,再改名为 .imy 文件
<3> imy 放到手机里的Audio文件夹
<4>;写短信(不是彩信) 写短信时, 插入铃声对象(自定义铃声对象,就是刚才放在audio 里的imy 文件) 并发送, 对方只要是存在这个芯片漏洞,那么则会产生上述所说效果.
3. 如何在Android上编写高效的Java代码
Java平台一般有三个版本:Java ME(微型版,用于某些手机)、Java SE(标准版,用于台式电脑)、Java EE(企业版,用于服务器端应用)。
在谈到Java时,我们通常是指Java SE,因为只有这个版本包含虚拟机和编译器。首先,Java代码会被编译成称为字节码的中间格式。
当字节码在目标电脑上运行时,虚拟机会快速将它解析成目标电脑硬件和操作系统所需要的本机格式。除了为开发者提供“一次编写,到处运行”的优势,Java还能通过垃圾回收器(GC)实现自动内存管理,开发者可免去手动在代码中释放无用对象的内存。
虽然这个功能非常有用,且大大降低了在代码中引入内存问题的风险,但是它会增加运行时的开销,因为需要不停地执行垃圾回收进程。本文开头将比较Java SE和用于Android开发的Java之间的差异。
首先我会介绍开发者习惯的Java SE语言结构以及它们是如何在Android上运行的。其次,我会介绍如何优化Android中的Java代码,如何优化内存分配,以及如何恰当地处理多线程。
比较Android上的Dalvik Java和Java SE虽然远在Android出现之前,开发者就能用Java编程语言为移动设备编写应用程序,但它只是Java中功能极为有限的一个版本,称为Java ME(微型版)。不同的移动设备还需编写不同的代码,因此,写一个应用程序就能在支持Java ME的任何手机上运行是几乎不可能的。
此外,由于当时不存在很好的在线商店,应用发布过程极其复杂。Android的问世为开发者提供了构建智能手机强大应用的机会,开发者只需用Java编程语言以及他们熟知的标准Java API编写代码。
然而,尽管Android开发者仍使用Java SE编译器来编译应用程序,你会发现,James Gosling开发的Java和Android设备上的Java存在许多不同之处。在Android设备上运行的VM(虚拟机)称为Dalvik。
它最初由谷歌的Dan Bornstein开发,适用于CPU和内存受限的移动设备。Java SE和Dalvik Java存在一些差异,主要体现在虚拟机上。
Java SE使用了栈机设计,而Dalvik被设计成了基于寄存器的机器。Android SDK中有一个dx工具,它会把Java SE栈机器的字节码转换成基于寄存器的Dalvik机器字节码,该转换步骤由IDE自动完成。
基于栈的虚拟机和基于寄存器的虚拟机的定义以及差异将不列入我们的讨论范围。由于历史原因,Android使用基于寄存器的虚拟机。
虽然基于寄存器的虚拟机最多可以比基于栈的虚拟机快32%,但这只限于执行时解释字节码的虚拟机(也就是说,解释型虚拟机)。在Android 2.2版本(也称为Froyo)之前,Dalvik虚拟机都是纯解释型的。
Froyo版本引入了JIT编译器(即时编译),这是Java SE很早就有的一个优势。JIT编译,也称为动态翻译。
它在执行前把字节码翻译成本机代码(如图1所示),这样主要有两个好处。首先,它消除了那些纯解释型虚拟机的开销;其次,它能对本机代码执行优化,这通常是静态编译代码无法做到的。
例如,JIT编译器可以在它运行的CPU上选择最合适的优化,也可以根据应用程序的输入来分析代码是如何运行的,以便进行下一步的优化。图1 Android Java和Java SE翻译步骤虽然Android的Dalvik JIT编译器有很大的发展前景,但要达到如Java SE的JIT编译器般稳定、成熟度尚需很长一段时间。
不过,Dalvik JIT的出现为Android提供了巨大的性能优势,而且它也在不断得以改善。JAVA SE虚拟机和Dalvik虚拟机的另一个区别是,后者进行了优化,可运行在同一个机器上的多个实例中。
它在开机时会启动一个叫做zygote的进程,该进程会创建第一个Dalvik实例,由这个实例创建所有其他的实例。当应用程序启动时,zygote进程会收到一个创建新虚拟机实例的请求,并给该应用程序创建一个新进程(如图2所示)。
如果开发者已习惯于JavaSE开发,这样的设计可能看起来不切实际,但它有一个很大的优势,可以避免由一个应用程序运行失败导致Dalvik虚拟机崩溃,继而引发多应用程序崩溃。图2 在Android中启动新Dalvik虚拟机实例Android和Java SE除了运行的虚拟机不同之外,它们实现API的方式也不一样。
Android中属于java和javax包中的API都来自Apache Harmony(这是一个开源项目,旨在重新实现Java SE软件栈,该项目从2011年11月不再维护)。在开发方面,这些API和Java SE包中的类似,但也存在一些差别。
例如,谷歌对HttpUrlConnection类进行了Java SE版本中所没有的重大升级。此外,Android平台移除了Java SE中无关的API。
例如,Swing/AWT包被完全移除,因为Android使用不同的UI框架。其他被移除的API还有RMI、CORBA、ImageIO和JMX。
它们或者被替换为特定的Android版本(在android包空间内),或者因为一些实际原因根本不存在。优化Android上的Java代码经过多年的改进,Java SE具备了一些简化编写复杂代码结构的新特性。
其中的一些特性会让整个流程变得更简单,但开发者需要了解何时以及如何正确地使用它们。另外,由于JavaSE大多用于服务器端开发(使用Java企业版的API),因而开发人员专门对服务器端Java代码进行了优化。
注解和Java虚拟机对脚本语言的支持就是对服务器。
转载请注明出处育才学习网 » 手机怎么写java代码