博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现可有括号的android计算器
阅读量:6264 次
发布时间:2019-06-22

本文共 2789 字,大约阅读时间需要 9 分钟。

写了一个android版的计算器,可以计算带括号的表达式,不过前提是:正确的表达式才行

小缺陷是没有做表达式括号的控制,现在还没有想到好的控制方式

1 package javaAdvanced; 2  3 import java.io.IOException; 4 import java.io.PrintWriter; 5  6 /** 7  * 类加载器学习 8  * 9  * @author cuiH10  * Date: 13-12-611  */12 public class ClassLoaderTest {13     public static void main(String[] args) {14         System.out.println(ClassLoaderTest.class.getClassLoader().getClass().getName());15         /**16          * result:sun.misc.Launcher$AppClassLoader17          * AppClassLoader 加载的18          */19 20 21         System.out.println(System.class.getClassLoader());22         /**23          * result:null24          * 加载器为null,说明是由bootstrap加载器进行加载的25          */26 27 28         ClassLoader loader = ClassLoaderTest.class.getClassLoader();29         while (loader != null) {30             System.out.println(loader.getClass().getName());31             loader = loader.getParent();32         }33         System.out.println(loader);34         /** http://www.cnblogs.com/sosoft/35          * result:36          * sun.misc.Launcher$AppClassLoader [加载classPath各种jar包下面类]37          * sun.misc.Launcher$ExtClassLoader [加载 Ext下面的各种jar包]38          * null(Bootstrap)[加载rt.jar]39          * 说明三个类加载器的父子关系40          */41     }42 43     /**44      * web项目中的一个类加载器的测试(Tomcat中servlet DoGet方法的加载器)45      * org.apache.catalina.loader.WebappClassLoader46      * org.apache.catalina.loader.StandardClassLoader47      * sun.misc.Launcher$AppClassLoader48      * sun.misc.Launcher$ExtClassLoader49      *50      * 两个apache 两个java51      * 这个放到web项目下好用。52      */53     protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {54         response.setContentType("text/html");55         PrintWriter out = response.getWriter();56         ClassLoader loader = this.getClass().getClassLoader();57         while (loader != null) {58             out.println(loader.getClass().getName() + "
");59 loader = loader.getParent();60 }61 out.close();62 }63 64 }65 66 /**67 * jvm默认三个类加载器 http://www.cnblogs.com/sosoft/68 * 类加载器本质也是一个类69 * java虚拟机第一个加载器是BootStrap,加载其他类加载器,然后加载类70 *71 * 默认的三个BootStrap ;AppClassLoader;ExtClassLoader72 *73 * 类加载器的委托方式:74 * 加载方式:首先向上委托,,追寻到Bootstrap,上面有的话,直接加载,没有的话向下寻找。75 * 因此自己写的System类无法被加载,因为找到最上面,就直接加载system类了76 */77 78 79 /**80 * 编写字节的类加载器81 * 模板方法的设计模式82 *83 * 父类里有loaderClass方法84 *85 * 子类1(自己的代码)86 * 子类2(自己的代码)87 *88 * 子类1和子类2的流程一样,但是具体实现方法不一样。89 * 因此,将实现流程的代码写在父类中,具体的实现代码由子类实现90 * 例如JDK中,ClassLoader.loaderClass使用的就是模板方法91 *92 * ClassLoader.loaderClass方法包括三步流程:93 * 一:findLoaderClass()检查是否加载94 * 二:父类加载器中调用 loaderClass方法95 * 三: findClass查找类。96 *97 * 因此:要想写一个自己的类加载器,只需要覆盖findClass便可以实现98 */

 

你可能感兴趣的文章
CSS-伪类选择器(未完待续。。。)
查看>>
Markdown常用标记使用
查看>>
使用 Docker 部署 Spring Boot项目
查看>>
高清的GIF表情包如何制作
查看>>
mysql-存储过程
查看>>
flac格式转换mp3格式要用什么软件
查看>>
黑客图标
查看>>
JavaScript数据结构与算法——集合
查看>>
DevOps自动化工具集合
查看>>
公共DNS服务器整理
查看>>
Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
查看>>
Alain 菜单权限控制
查看>>
共享本地项目
查看>>
聊聊flink的BlobStoreService
查看>>
275. H-Index II
查看>>
【Leetcode】103. 二叉树的锯齿形层次遍历
查看>>
关于 synchronizeOnSession
查看>>
git status将文件状态标为renamed问题探究
查看>>
数组方法的二三事
查看>>
js 任务
查看>>