java解释程序高手帮忙!!!解释一段JAVA的程序,要尽量详细!!!100分!!!

java解释程序  时间:2021-10-13  阅读:()

【Java】帮忙解释个程序

GregorianCalendar d = new GregorianCalendar();//这个能够提供多个国家的日历格式等等。

用途不小 int today = d.get(Calendar.DAY_OF_MONTH); // 这个明显是获得天 int month = d.get(Calendar.MONTH); d.set(Calendar.DAY_OF_MONTH,1); //这个是获得月 int weekday = d.get(Calendar.DAY_OF_WEEK); //这个获得的是星期 System.out.println("Sun Mon Tue Wed Thu Fri Sat"); for(int i=Calendar.SUNDAY;i
这是java的写法,星期日是第一天 System.out.print("~~~~"); do { int day = d.get(Calendar.DAY_OF_MONTH); System.out.printf("%3d",day); //输出天 if(day==today) System.out.print("*"); //如何天等于今天则输出* else System.out.print(" "); //否则输出空格 if(weekday==Calendar.SATURDAY) //如果星期与今天的星期一样 System.out.println("^"); 输出~ d.add(Calendar.DAY_OF_MONTH,1); 添加这个天 weekday=d.get(Calendar.DAY_OF_WEEK);获取星期 } while(d.get(Calendar.MONTH)==month); if(weekday!=Calendar.SUNDAY) System.out.print(" "); //在判断month与这个月是否一样。

还有天 整体就是一个日历表

java程序解析

这里的java程序运行过程,是指我们编译好代码之后,在命令行开始执行java xxx命令,到java程序开始执行起来的这一过程,我们称其为运行时。

第一步,操作系统解析我们输入的java xxx命令,根据PATH中所配置的jrd路径找的其bin目录下的java.exe程序(这个程序是用c语言写的,源码在jdk的src文件中的laucher目录下),然后再初始化一些java参数(比如classpath、虚拟机参数等)。

第二步,java.exe程序根据上一步读入的虚拟机参数,分配内存并启动jre/bin目录下client目录或者server目录(哪个目录取决于第一步中的虚拟机参数)下的jvm.dll,java虚拟机开始启动。

第三步,java虚拟机初始化内存,产生bootstrap classloader,这个类加载器负责加载java API(jvm+java API被称为java运行时),其实这些jar包主要分布在jre/lib下,这些我们可以通过在java命令后加-verbose:class(如下图),可见第一个被载入的java类是Object类。

[java] view plain copy C:Documents and Settings omouse>java -verbose:class [Loaded java.lang.Object from shared objects file] [Loaded java.io.Serializable from shared objects file] [Loaded java.lang.Comparable from shared objects file] [Loaded java.lang.CharSequence from shared objects file] [Loaded java.lang.String from shared objects file] [Loaded java.lang.reflect.GenericDeclaration from shared objects file] [Loaded java.lang.reflect.Type from shared objects file] [Loaded java.lang.reflect.AnnotatedElement from shared objects file] [Loaded java.lang.Class from shared objects file] [Loaded java.lang.Cloneable from shared objects file] [Loaded java.lang.ClassLoader from shared objects file] [Loaded java.lang.System from shared objects file] [Loaded java.lang.Throwable from shared objects file] [Loaded java.lang.Error from shared objects file] [Loaded java.lang.ThreadDeath from shared objects file] [Loaded java.lang.Exception from shared objects file] [Loaded java.lang.RuntimeException from shared objects file] [Loaded java.security.ProtectionDomain from shared objects file] [Loaded essControlContext from shared objects file] ... 第四步,bootstrap classloader载入完java API后,还会负责载入ExtClassLoader并生成一个实例,它继承于ClassLoader类,负责载入jre/lib/ext下的jar包(所以有时候需要把servlet.jar包加进去,相当于一个不配置在classpath中就可以默认访问的公共jar目录),到这里,java虚拟机默认加载类工作完成,java虚拟机找到我们指定的Class,加载这个类(所谓自定义类加载,是指我们自己写的java类、以及我们引入的一些第三方jar包的加载方式,只有代码中运行到类的时候才回去加载,我们可以实现自己的ClassLoader类,用来加载我们自己的类,如果我们没有实现自己的类加载器,上面说的ExtClassLoader会默认载入AppClassLoader并生成一个实例,由这个类加载器来进行加载),然后找到这个类的main方法,启动程序。

求java高手解释下程序?

不同意上面的说法!手机游戏是java的一个分支写的j2me还有iangge分支是j2se它的基础非常强大!还有一个是j2ee一样厉害!java的运行不受平台的限制!只要有虚拟机就可以运行!所以灵活性强!但是速度没有C和C++快!所以大型软件还是采用C++来写!java的一个竞争对手就是C#是微软推出的!

java代码解释

有一个map,相当于两列,key和value value里存的是一个CommonInformationDto的list CommonInformationDto肯定是程序员自己写的类,类似于javabean那种,用来封装数据的。

groupCommoninfo是一个方法。

你传给它的参数是括号里那个方法的返回值。

小括号里的拆开看:分别对应map中key和value queryCommonInfo, new DefaultGroupRule() { String key = getKey(mInfoDto); } public String getKey(mInfoDto) { String key = commInfoDto.getCompany() +mInfoDto.getCode() +mInfoDto.getComAttr1() +mInfoDto.getComAttr6() +mInfoDto.getLongAttr1(); return key; }

高手帮忙!!!解释一段JAVA的程序,要尽量详细!!!100分!!!

import java.awt.event.*; //导入包,分别是AWT组件,APPLET组件和事件处理组件,还有向量组件 import java.awt.*; import java.applet.*; import java.util.Vector; public class DrawTest extends Applet{ //声明类,继承了APPLET DrawPanel panel; //声明DRAWPANEL类的实例 DrawControls controls; //声明DRAWCONTROLS类的实例 public void init() { //本类初始化方法,将一些参数初始化 setLayout(new BorderLayout()); panel = new DrawPanel(); controls = new DrawControls(panel); //将控制类和面板类关联 add("Center", panel); //将画图面板放在显示终端的中间 add("South",controls); //将控制面板放在显示终端的下面 } public void destroy() { //增加删除面板方法,这里删除了画图面板和控制面板 remove(panel); remove(controls); } public static void main(String args[]) { //程序入口 Frame f = new Frame("DrawTest"); DrawTest drawTest = new DrawTest(); //实例化测试类 drawTest.init(); //初始化类实例 drawTest.start(); //运行类实例 f.add("Center", drawTest); //将整个画图界面放在显示终端的中间 f.setSize(300, 300); //设置界面大小 f.show(); //显示界面 } public String getAppletInfo() { //定义获取当前APPLET应用的解释 return "A simple drawing program."; } } class DrawPanel extends Panel implements MouseListener, MouseMotionListener { //定义画图面板类 public static final int LINES = 0; //定义常量0表示直线 public static final int POINTS = 1; //1表示点 int mode = LINES; //初始化模式为直线 Vector lines = new Vector(); //直线向量 Vector colors = new Vector(); //颜色向量 int x1,y1; //这四个都是点坐标,因为画图时要用 int x2,y2; public DrawPanel() { //无参构造画图面板方法 setBackground(Color.white); //设置背景为白色 addMouseMotionListener(this); //这两个都是增加鼠标点击侦听方法 addMouseListener(this); } public void setDrawMode(int mode) { //初始化模式的方法 switch (mode) { case LINES: case POINTS: this.mode = mode; break; default: throw new IllegalArgumentException(); } } public void mouseDragged(MouseEvent e) { //鼠标拖动侦听处理 e.consume(); switch (mode) { //如果是直线,则记录鼠标结束的坐标,并在向量中记录 case LINES: x2 = e.getX(); y2 = e.getY(); break; case POINTS: default: colors.addElement(getForeground()); lines.addElement(new Rectangle(x1, y1, e.getX(), e.getY())); x1 = e.getX(); y1 = e.getY(); break; } repaint(); //刷新面板(因为鼠标拖动过一次) } public void mouseMoved(MouseEvent e) { } public void mousePressed(MouseEvent e) { //鼠标点击侦听处理 e.consume(); switch (mode) { //类似上一个方法,我就不说了 case LINES: x1 = e.getX(); y1 = e.getY(); x2 = -1; break; case POINTS: default: colors.addElement(getForeground()); lines.addElement(new Rectangle(e.getX(), e.getY(), -1, -1)); x1 = e.getX(); y1 = e.getY(); repaint(); break; } } public void mouseReleased(MouseEvent e) { //鼠标释放侦听处理 e.consume(); switch (mode) { case LINES: colors.addElement(getForeground()); lines.addElement(new Rectangle(x1, y1, e.getX(), e.getY())); x2 = -1; break; case POINTS: default: break; } repaint(); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void paint(Graphics g) { //根据记录开始画图的方法 int np = lines.size(); /* draw the current lines */ g.setColor(getForeground()); for (int i=0; i < np; i++) { //依次取记录并画图 Rectangle p = (Rectangle)lines.elementAt(i); g.setColor((Color)colors.elementAt(i)); if (p.width != -1) { g.drawLine(p.x, p.y, p.width, p.height); } else { g.drawLine(p.x, p.y, p.x, p.y); } } if (mode == LINES) { //设置颜色 g.setColor(getForeground()); if (x2 != -1) { g.drawLine(x1, y1, x2, y2); } } } } 大致就这个意思。

总的来说就是一个APPLET程序,有控制面板和绘图面板。

不懂可以继续补充提问。

呵呵。

Hostodo,美国独立日特价优惠,四款特价VPS云服务器7折,KVM虚拟架构,NVMe阵列,1核512M内存1Gbps带宽3T月流量,13.99美元/月,赠送DirectAdmin授权

Hostodo近日发布了美国独立日优惠促销活动,主要推送了四款特价优惠便宜的VPS云服务器产品,基于KVM虚拟架构,NVMe阵列,1Gbps带宽,默认分配一个IPv4+/64 IPv6,采用solusvm管理,赠送收费版DirectAdmin授权,服务有效期内均有效,大致约为7折优惠,独立日活动时间不定,活动机型售罄为止,有需要的朋友可以尝试一下。Hostodo怎么样?Hostodo服务器好不好?...

RackNerd:特价美国服务器促销,高配低价,美国多机房可选择,双E526**+AMD3700+NVMe

racknerd怎么样?racknerd今天发布了几款美国特价独立服务器的促销,本次商家主推高配置的服务器,各个配置给的都比较高,有Intel和AMD两种,硬盘也有NVMe和SSD等多咱组合可以选择,机房目前有夏洛特、洛杉矶、犹他州可以选择,性价比很高,有需要独服的朋友可以看看。点击进入:racknerd官方网站RackNerd暑假独服促销:CPU:双E5-2680v3 (24核心,48线程)内存...

特网云(1050元),IP数5 个可用 IP (/29) ,美国高防御服务器 无视攻击

特网云特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。官方网站:https://www.56dr.com/ 10年老品牌 值得信赖 有需要的请联系======================特网云美国高防御...

java解释程序为你推荐
黄家驹女友唱海阔天空有谁听完黄家驹唱的海阔天空就很倒霉..虽然很好听,但我还是个删了天蚕土豆微博天蚕土豆的个人资料开模式华为art模式怎么开x1360CPU X5650怎么样网上秘书做秘书要学习什么办公软件cisp查询CISP是什么,跟CISSP有什么区别?抢吧现在还有红包开挂的功能吗?还是被封了?就是自动抢红包的那个App破泞之战第二幕斗破苍穹小说中萧炎在七百八十八章与美杜莎女王分开后在哪一章再次相遇浙大网新培训浙大网新培训和杭州和盈培训,哪个好??请去过培训的人帮我解答。托就别进来坑人了钢铁大师黑暗之女和钢铁大师哪个厉害(详细)
中国互联网域名注册 lamp安装 香港bgp机房 瓦工 asp.net主机 韩国电信 本网站服务器在美国 网站cdn加速 徐正曦 共享主机 vip购优惠 湖南idc 秒杀品 lamp架构 带宽测试 深圳主机托管 广州主机托管 asp空间 万网服务器 tracker服务器 更多