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程序,有控制面板和绘图面板。
不懂可以继续补充提问。
呵呵。
专心做抗投诉服务器的VirtVPS上线瑞士机房,看中的就是瑞士对隐私的保护,有需要欧洲抗投诉VPS的朋友不要错过了。VirtVPS这次上新的瑞士服务器采用E-2276G处理器,Windows/Linux操作系统可选。VirtVPS成立于2018年,主营荷兰、芬兰、德国、英国机房的离岸虚拟主机托管、VPS、独立服务器、游戏服务器和外汇服务器业务。VirtVPS 提供世界上最全面的安全、完全受保护和私...
炭云怎么样?炭云(之前的碳云),国人商家,正规公司(哈尔滨桓林信息技术有限公司),主机之家测评介绍过多次。现在上海CN2共享IP的VPS有一款特价,上海cn2 vps,2核/384MB内存/8GB空间/800GB流量/77Mbps端口/共享IP/Hyper-v,188元/年,特别适合电信网络。有需要的可以关注一下。点击进入:炭云官方网站地址炭云vps套餐:套餐cpu内存硬盘流量/带宽ip价格购买上...
RAKsmart 商家八月份的促销活动今天更新。基本上和上个月的产品套餐活动差不多的,不过也是有简单的微调。对于RAKsmart商家还是比较了解的,他们家产品虽然这两年增加多个机房,以及在VPS主机方案上有丰富的机房和调整到一些自营机房,他们家的策划能力还是有限,基本上每个月的套餐活动都差不多。RAKsmart 在八月份看到有新增香港高防服务器可选,最高100GB防御。同时原来上个月缺货的日本独立...
java解释程序为你推荐
康佰公司广州精锋医疗器械有限公司怎么样?360os系统目前360os手机系统有什么功能啊?比小米多嘛?360n7的稳定系统x13601360x768分辨率是个什么水平旱獭组合黑尾土拨鼠是什么?yy协议怎么用什么是歪歪协议企业培训光盘有什么好的DVD碟适合英语学习者看(已经读大二)还有与营销有关的介绍一些中国化妆品真品联盟化妆品有防伪码在哪儿可辨真假融图教程有没有简单点的qq空间融图方法?cisp成绩查询浙江CSP成绩怎么查?新掌柜什么是淘宝的掌柜说,怎么操作?
万网域名 x3220 主机点评 博客主机 网通代理服务器 河南移动邮件系统 腾讯云分析 阿里校园 东莞数据中心 海外空间 沈阳主机托管 云服务器比较 cdn网站加速 葫芦机 免费赚q币 脚本大全 globalsign 泥瓦工 电脑显示屏不亮但是主机已开机 主机之家 更多