java 如何获得3个月之前的日期 显示全部
范欣菽
2017-05-20

Date dNow = new Date(); //当前时间Date dBefore = new Date();Calendar calendar = Calendar.getInstance(); //得到日历calendar.setTime(dNow);//把当前时间赋给日历calendar.add(calendar.MONTH, -3); //设置为前3月dBefore = calendar.getTime(); //得到前3月的时间SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置时间格式String defaultStartDate = sdf.format(dBefore); //格式化前3月的时间String defaultEndDate = sdf.format(dNow); //格式化当前时间System.out.println("前3个月的时间是:" + defaultStartDate);System.out.println("生成的时间是:" + defaultEndDate);

查看全部回答
java中的枚举应该怎样深刻理解 显示全部
温湘奕
2017-05-02

枚举种规范规范参数形式用考虑类型匹配并且显式替代int型参数能带模糊概念 枚举像类像数组Enum作Sun全新引进关键字看起象特殊class, 自变量定义自实现或者接口 我声明enum类型我应该注意enum类型些特征 1.能public构造函数做保证客户代码没办新建enum实例 2.所枚举值都public , static , final注意点针于枚举值我普通类面定义 变量定义其任何类型非枚举变量些变量用任何想用修饰符 3.Enum默认实现java.lang.Comparable接口 4.Enum覆载toString我调用Color.Blue.toString()默认返字符串Blue. 5.Enum提供valueOftoString相应调用valueOf(Blue)返Color.Blue.我自重写toString候要注意点说应该相应重写valueOf 6.Enum提供values使能够便遍历所枚举值 7.Enumoridinal返枚举值枚举类种顺序顺序根据枚举值声明顺序定Color.Red.ordinal()返0

查看全部回答
java中的单例模式的代码怎么写 显示全部
郭朝郭
2017-05-04

我我博客我文章粘贴吧于单例模式模式应该比较清楚解释:单例模式我项目十见我项目需要象象内存能实例我需要用单例般说单例模式通几种:1.饥汉式单例public class Singleton { private Singleton(){}; private static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; }}简单单例种单例见靠唯缺点完延迟加载——即系统没用单例单例加载内存我做测试:述代码修改:public class Singleton { private Singleton(){ System.out.println("createSingleton"); }; private static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; } public static void testSingleton(){ System.out.println("CreateString"); }}我另外测试类进行测试(本例所测试都通Junit进行测试)public class TestSingleton { @Test public void test(){ Singleton.testSingleton(); }}输结:createSingletonCreateString 我注意单例即使我没使用单例类创建我所愿意看所种单例2.懒汉式单例public class Singleton1 { private Singleton1(){ System.out.println("createSingleton"); } private static Singleton1 instance = null; public static synchronized Singleton1 getInstance(){ return instance==null?new Singleton1():instance; } public static void testSingleton(){ System.out.println("CreateString"); }}面单例获取实例需要加同步加同步线程环境线程1完新建单例操作完赋值操作前线程2能判断instance空线程2启新建单例操作现实例新建违反我使用单例模式初衷我通测试类进行测试面输CreateString看未使用单例类单例类并加载内存我需要使用候才进行实例化种单例解决单例延迟加载由于引入同步关键字线程环境所需消耗间要远远于第种单例我通段测试代码说明问题public class TestSingleton { @Test public void test(){ long beginTime1 = System.currentTimeMillis(); for(int i=0;i<100000;i++){ Singleton.getInstance(); } System.out.println("单例1花费间:"+(System.currentTimeMillis()-beginTime1)); long beginTime2 = System.currentTimeMillis(); for(int i=0;i<100000;i++){ Singleton1.getInstance(); } System.out.println("单例2花费间:"+(System.currentTimeMillis()-beginTime2)); }}输:单例1花费间:0单例2花费间:10 看使用第种单例耗0ms第二种单例耗10ms性能存明显差异使用延迟加载功能导致单例性能存明显差异偿失呢否找种更解决办呢既解决延迟加载至于性能损耗所第三种单例:3.内部类托管单例public class Singleton2 { private Singleton2(){} private static class SingletonHolder{ private static Singleton2 instance=new Singleton2(); } private static Singleton2 getInstance(){ return SingletonHolder.instance; }}单例我通静态内部类托管单例单例加载初始化单例类getInstance调用候才加载SingletonHolder才初始化instance并且单例加载内部类加载候完所线程友且需要synchnoized关键字说兼具两优点4.总结般说述单例已经基本保证系统存实例仍能其情况导致系统单例请看情况:public class Singleton3 implements Serializable{ private Singleton3(){} private static class SingletonHolder{ private static Singleton3 instance = new Singleton3(); } public static Singleton3 getInstance(){ return SingletonHolder.instance; }}通段代码测试:@Test public void test() throws Exception{ Singleton3 s1 = null; Singleton3 s2 = Singleton3.getInstance(); //1.实例串行文件 FileOutputStream fos = new FileOutputStream("singleton.txt"); ObjectOutputStream oos =new ObjectOutputStream(fos); oos.writeObject(s2); oos.flush(); oos.close(); //2.文件读取单例 FileInputStream fis = new FileInputStream("singleton.txt"); ObjectInputStream ois = new ObjectInputStream(fis); s1 = (Singleton3) ois.readObject(); if(s1==s2){ System.out.println("同实例"); }else{ System.out.println("同实例"); } }输:同实例 看我单例反序列化同单例类我必须原代码加入readResolve()函数阻止新单例public class Singleton3 implements Serializable{ private Singleton3(){} private static class SingletonHolder{ private static Singleton3 instance = new Singleton3(); } public static Singleton3 getInstance(){ return SingletonHolder.instance; } //阻止新实例 public Object readResolve(){ return SingletonHolder.instance; }}再测试发现同实例

查看全部回答
java 类中函数前加和不加static有什么不同 显示全部
郭长文
2017-04-26

static表示的静态。如果此函数是静态的,会在程序初始化过程中直接进行内存加载,此方法内的所有方法内容必须是静态的,否则会报错静态方法引用动态变量。方法调用:“类名.方法”如果此函数是动态的,那么只有在调用的时候才会被主动加载一次,之后释放内存。方法调用:必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

查看全部回答
java面向对象的特征有哪些 显示全部
郭风帅
2017-05-10

Java作种面向象语言支持基本概念:态--继承--封装--抽象--类--象--实例----重载象:象类实例(象找朋友)状态行例条狗象状态:颜色、名字、品种;行:摇尾巴、叫、吃等类:类模板描述类象行状态图男孩孩类具体每该类象:图" class="ikqb_img_alink">

查看全部回答
耿占东
2017-05-14

循环遍历, 疑问相于for(Iterator it = shapes.getIterator(); it.hasNext();){ Shape shape = it.next(); shape.draw(); shape.erase(); shape.msg();}

查看全部回答
java中SET和GET。。。 显示全部
郭风帅
2017-05-20

java程序般A类属性修饰符设置private更封装数据要想B类引用该属性A类定义修饰符publicsetget设置获取private型属性值别说专业化理解都要半理解吧面向象想类员变量设置访问些权限于该字段设置private别类能访问该内定义两专门用于获取用于修改想让别乱该字段候该内写些限制条件规范起见(团队发需要嘛)根据家外习惯名设置set+字段名get+字段名(名字乱改没问题)既规范别都叫名于些框架给象赋值名称由get或set始private变量名找调用hibernate1框架弄至于面版本清楚JavaBeanJAVA类既JAVA类需要组件玩意直接深入虚拟机java程序规范建议家尽量类属性私化即定义private变量通设置setget函数属性进行操作些存疑问直接属性设置public调用属性直接通象进行访问更便java做原:1 数据与行离java面向象概念 象属性+行封装象私属性封装起通自公行改变(获)象内部私属性信息些public面向其象接口通接口改变(获)象私属性2 安全性 设想Person类代表Personchar类型sex字段表示性别理论sex接受两值 'M ' 'F 'sex字段设public难限制用户给赋 'M '或 'F '值sex设private再用setSex()设置性别完全控制种行且控制能get能set或相反public行别外点属性我能并希望其用户我属性进行写操作候直接写setX读属性3 编码规范性 我设计类或者作com组件经告诉其实coder需要调用我XX接口内部我实现用管面向特定环境特定间段直接属性声明public让外部象访问未偿没面象象思想我写C语言程序结构变量随意访问没pulbic,private现我面向象编程我需要接口处作文章保护象私属性即安全性通外公接口访问面向象理论认安全4 稳定性5 扩展性6 便于维护

查看全部回答
用java编写一个程序:输出1-1000;输出格式为0001,0002.....1000 显示全部
耿占东
2017-04-22

public static void main(String[] args) { String str = ""; for(int i = 1;i < 10000;i++) { str = String.format("%04d", i); System.out.println(str); } }

查看全部回答
高弘斌
2017-05-04

可以通过”Scanner“函数 直接输入参数的形式,来实现输入语句,举例:import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.println("请输入一个数组长度:");int length=input.nextInt();//输入一个正整数System.out.println("输入的数字是:"+length);}}备注:Scanner函数就是用来进行语句输入的,上面举例的是数值型,也可以用以下语句“String length=input.next()”,输入的就是字符串等。

查看全部回答
java软件工程师应该具备哪些基本素质? 显示全部
车雨琦
2017-05-13

计算机原理,网络协议,数据结构,多线程与IO等基础知识,这些是一个软件工程师的基本素养,但现在好多从事软件开发的人都不知道,或是对其一知半解,所以现在很多人将软件工程师名称“码农”,因为他们不知道其原理,更谈不上优化等高级技术了。然后是在这些基础之上的框架,中间件。这样你就能够正确使用这些工具来简化并加速开发高性能的应用。给你举一个真实的例子,公司以前的遗留项目是使用多线程并发访问网络资源,这开发这个的人连最基本的资源释放都没有——在某个线程运行完之后并没有关闭底层网络连接,这就导致了程序运行一段时间之后就要重启,而且在那个服务器上不能跑其他的程序。因为它把所有能用的端口都占用了。而且频繁打开网络连接与线程使程序运行的效率很低。最后再说一句:如果只会用框架,只会做web而不懂原理的是码农,不是工程师。

查看全部回答
范伟雄
2017-05-02

你说的可是“||”或者“|”???如果是这个话,就这么打:shift+\“\”在Enter键上面,紧挨着Enter键

查看全部回答
请问 java中"% "与 "/ "之间的区别? 显示全部
高猛
2017-05-18

%求模运算符/除运算符二者都双目运算符间区别:%求余运算即2%10=210%2=010%3=1/普通除号即10/2=5

查看全部回答
怎样用java定义一个int数组 显示全部
范建中
2017-05-11

int[] anArray = null;/*** 这样赋值在java中是不允许的,会判定为语法错误* 首先java只可以在class中【声明】成员变量,而不能对变量赋值,* 你只能在方法中(例如:main方法或者其他方法)对变量赋值。** 但是class中允许在声明变量的同时,为变量赋【初始值】。* 也就是说 int[] anArray2 = new int[10]; 这样是允许的* 这里的 new int[10] 是初始化操作(不是赋值操作)。* *///anArray = new int[10];static int[] bArray = null;public void setValue(){anArray = new int[10]; //这里是可以的,方法内可以赋值。}public static void main(String[] args){//anArray = new int[10];/*** 这里是不允许的,因为主方法(即main方法)是静态的(由static修饰)* 所以如果是静态的成员变量可以赋值,例如 bArray* 下面的两种方式都是可以赋值的* */bArray = new int[10];bArray = new int[]{1,2,2,1,1,1,1,1,1,1};}}<b答案补充</bstatic修饰的方法,只可以调用static修饰的成员变量所以在main方法中为【非静态】的anArray数组赋值是不允许的。另外bArray = new int[]{1,2,2,1,1,1,1,1,1,1};是为数组赋值的方式。

查看全部回答
java中1和0哪个对应true?为什么? 显示全部
郭力月
2017-05-13

通常有这样的宏定义 #ifndef true #define true 1#endif因为true英文就是确定的意思,通常1表示肯定,而0表示否定即false,false的错误否定的意思,所以就将1定义为true,0定义为flase,这个是bool变量的约定,布尔是这样设定的

查看全部回答
java 错误:需要标识符 显示全部
耿维
2017-05-12

System.out.println(j); 条输语句能放面写条语句放 main 外面吧所执行功想要执行功使用 static 块括起:publicclassnihao{publicstaticvoidmain(Stringargs[]){System.out.println("nihao");inti=8;System.out.println(j);}staticintj=9;static{//使用static块括起System.out.println(j);}}

查看全部回答
java的数字二进制输出 显示全部
范丽坤
2017-04-25

定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头需要将十进制的数以二进制的数表示出来可以参照下例:int a = 10;System.out.println(Integer.toBinaryString(a));转换成八进制把Binary换成Octal转换成十六进制把Binary换成Hex解释:Binary是二进制的意思,Octal是八进制的意思,Hex是十六进制的意思。

查看全部回答
java立方表示方法 显示全部
方寒琪
2017-04-25

可以使用以下方法:  1、num * num * num,这是最简单的方法。   这就相当于数学上的3个数相乘,即是立方。  2、使用库方法:Math.pow(num, 3);。   这相当于数学上使用的函数,如sin、cos这样子的。

查看全部回答
java现在有两个list类型的数据,如何进行字符串匹配和替换 显示全部
范建中
2017-04-27

给定字符串与list1进行匹配要匹配要找匹配串list2同索引字符串替换给定字符串输list2publicstaticvoidmain(String[]args){List<String>list1=newArrayList<String>();list1.add("news");list1.add("newssport");list1.add("newssportfootball");List<String>list2=newArrayList<String>();list2.add("xinwen1");list2.add("xinwen2");list2.add("xinwen3");Stringstr="newssportfootballenrgqasderfnwef";intindex=-1;intmax=0;for(inti=0;i<list1.size();i++){Stringtemp=list1.get(i);if(str.indexOf(temp)!=-1&&max<temp.length()){max=temp.length();index=i;}}if(index!=-1){System.out.println("改变前:"+list2.get(index));list2.add(index,list1.get(index));System.out.println("改变:"+list2.get(index));}}

查看全部回答
java中如何在拷贝文件时加入进度条,进度条跟文件拷贝进度一致 显示全部
高山玥
2017-05-01

给例再改进 import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JProgressBar;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.Toolkit;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;public class JprogressBar extends JFrame implements Runnable { public JprogressBar() { initUI(); } private void initUI() { btCopy = new JButton("open file...."); JButton btCancel = new JButton("cancel"); JButton btSavePath = new JButton("save Path..."); copyFileProgressBar = new JProgressBar(0, 100); copyFileProgressBar.setPreferredSize(new Dimension(450, 15)); copyFileProgressBar.setBackground(Color.GREEN); copyFileProgressBar.setForeground(Color.PINK); copyFileProgressBar.setStringPainted(true); copyFileProgressBar.setVisible(false); openFileDialog = new JFileChooser("."); this.setLayout(new BorderLayout()); JPanel tmpPanel1 = new JPanel(); JPanel tmpPanel2 = new JPanel(); btCopy.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Thread t = new Thread(JprogressBar.this); t.start(); } }); btSavePath.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { savePath = setSavePath(); } }); btCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { stop = true; btCopy.setEnabled(true); } }); tmpPanel1.add(btCopy); tmpPanel1.add(btSavePath); tmpPanel1.add(btCancel); tmpPanel2.add(copyFileProgressBar); this.add(tmpPanel1, BorderLayout.NORTH); this.add(tmpPanel2, BorderLayout.SOUTH); this.setTitle("read and copy file"); this.setPreferredSize(new Dimension(450, 95)); this.pack(); Dimension cd = centerIt(this); this.setLocation(cd.width, cd.height); final Dimension des = this.getPreferredSize(); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { stop = true; System.exit(0); } public void windowStateChanged(WindowEvent e) { System.out.println("ss"); if (e.paramString().equals("WINDOW_STATE_CHANGED")) { System.out.println("ss"); JprogressBar.this.setSize(des); } } }); this.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { // System.out.println("ss"); // JprogressBar.this.setSize(des); } }); } /* * start read file.. */ public void run() { stop = false; int c = openFileDialog.showOpenDialog(this); if (c == JFileChooser.APPROVE_OPTION) { try { File selectFile = openFileDialog.getSelectedFile(); if (selectFile.equals(savePath)) { JOptionPane.showMessageDialog(this, " \t target file and source file can't as the same !"); return; } if (savePath == null) { JOptionPane.showMessageDialog(this, " \t please select a path to save file !"); return; } btCopy.setEnabled(false); copyFileProgressBar.setVisible(true); long size = selectFile.length(); copyFileProgressBar.setMaximum((int) size); FileInputStream fin = new FileInputStream(selectFile); FileOutputStream fout = new FileOutputStream(savePath); byte[] buff = new byte[1024]; int s; int count = 0; long startTime = System.currentTimeMillis(); while ((s = fin.read(buff)) > 0 && !stop) { count += s; fout.write(buff, 0, s); String str = "" + 100 * (count / (size + 0.01)); str = forMatString(str); long endTime = System.currentTimeMillis(); String speedStr = getSpeed(count, startTime, endTime); String remailTime = getRemailTime(count, size, startTime, endTime); copyFileProgressBar.setString(" precent: " + str + " %" + " speed: " + speedStr + " " + " remail time : " + remailTime); copyFileProgressBar.setValue(count); } fin.close(); fout.close(); if (!stop) { JOptionPane.showMessageDialog(this, " \t copy file complete !"); } stop = true; savePath = null; btCopy.setEnabled(true); copyFileProgressBar.setValue(0); copyFileProgressBar.setString(""); copyFileProgressBar.setVisible(false); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "err:\n" + ex.getMessage()); } } } /* *select save file path */ private File setSavePath() { File path = null; int c = openFileDialog.showSaveDialog(this); if (c == JFileChooser.APPROVE_OPTION) { path = openFileDialog.getSelectedFile(); } return path; } /* * make frame center */ private Dimension centerIt(Component c) { Dimension size = c.getSize(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int sH = screenSize.height; int sW = screenSize.width; int cW = size.width; int cH = size.height; return new Dimension((sW - cW) / 2, (sH - cH) / 2); } /* * show copy file speed */ private String getSpeed(long readByte, long startTime, long endTime) { long speed; if (endTime - startTime != 0) { speed = (readByte / (endTime - startTime)) * 1000; if (speed > 1024 * 1024) { return forMatString(speed / (1024 * 1024 + 0.1) + "") + " m/s"; } else if (speed > 1024) { return forMatString(speed / (1024 + 0.1) + "") + " k/s"; } else { return speed + " b/s"; } } else { return "0 b/s"; } } /* * format string */ private String forMatString(String str) { String values; int index = str.indexOf("."); values = str.substring(0, index + 3); return values; } /* * get remail time */ private String getRemailTime(long readByte, long totalByte, long startTime, long endTime) { long hour; long minute; long second; String h; String m; String s; try { long speed = readByte / (endTime - startTime); long time = ((totalByte - readByte) / speed) / 1000; hour = time / 3600; minute = time % 3600 / 60; second = time % 3600 % 60; h = hour + ""; m = minute + ""; s = second + ""; if (hour < 10) { m = "0" + minute; } if (minute < 10) { m = "0" + minute; } if (second < 10) { s = "0" + second; } return h + ":" + m + ":" + s; } catch (Exception ex) { return "00:00:00"; } } /* * show frm */ public static void main(String[] args) { JprogressBar frm = new JprogressBar(); frm.setVisible(true); } /* * */ private JButton btCopy; private JFileChooser openFileDialog; private JProgressBar copyFileProgressBar; private File savePath = null; private boolean stop = false;}

查看全部回答
java 8u111和8u112的区别 显示全部
郭联江
2017-04-26

java 8u111和8u112的区别通常是奇数版本和偶数版本奇数版本是官方推荐的稳定版本。偶数版本在奇数版本的基础上修复了一些非关键的bug。Java SE 8u111 / 8u112下面为官方说明:Java SE 8u111 includes important security fixes. Oracle strongly recommends that all Java SE 8 users upgrade to this release. Java SE 8u112 is a patch-set update, including all of 8u111 plus additional features (described in the release notes).

查看全部回答
java里什么是包? 显示全部
郭联江
2017-05-22

在Java中,我们写程序时用到相同的类名是有可能的,遇到这种情况的话,就会出现错误。为了避免上述错误,Sun公司在开发Java时提出了包的的概念,就是package。包可以使具有相同类名的程序互不影响,从而保证了程序的正确性。你可以理解为包就是一个文件夹,例如有文件夹A和文件夹B,现在有两个类名相同的程序,假设类名都为HelloWorld.java吧。现在把这两个java源文件分别放在文件夹A和文件夹B中,虽然他们的类名相同,但是由于不在同一个文件夹下,两个程序互不影响也可以互相调用。在实际中可以通过包名+类名来调用源程序了。这是和class有关的。

查看全部回答
java问题,参数String... to是什么意思,方法如下 显示全部
范丽坤
2017-05-10

变参数,接受任意参数 类型String 我给写例,看知道.public static void fun(int... x) { for(int i = 0;i < x.length;i++) { System.out.print(x[i] + ","); } } public static void main(String args[]) throws Exception{ fun(5); System.out.println(""); fun(5,6); System.out.println(""); fun(5,6,7); }

查看全部回答
java private 干什么用 显示全部
高雪昕
2017-05-09

Java有很修饰符,而且范围有区别类修饰符 :public、default、abstract、final、strictfp接口修饰符 :public、default、abstract、strictfp构造器修饰符 :public、protected、default、private全局变量修饰符:public、protected、default、private、static、transient、volatile、final方法修饰符 : public、protected、default、private、abstract、static、final、native、synchronized、strictfp内部类 :public、protected、default、private、static、abstract、final局部变量修饰符:finalprivate 和 public没有对应关系private可以修饰变量、构造器,方法、内部类;在变量前面加private 表示类的私有属性,只可以在类内部访问使用;

查看全部回答
重庆哪里有java培训 显示全部
郭长文
2017-05-04

现培训机构比较具体要看区选择校候重点师资、课程设置、业服务三面考虑首先要给自规划习案想利用间习习要达水平想业等等些都要先考虑清楚完再根据自需求选择校看校能能满足自条件

查看全部回答
现在学的java能做什么 显示全部
车依轮
2017-05-14

如果想朝游戏方向发展的话OpenGL(OpenGLES),OpenGLES是OpenGL的移动版而要学习上面的,必须掌握C/C++无论是android还是ios 都是使用的OpenGLES。要掌握图形图像原理,RGB,YUV,帧率控制等等。要掌握声音原理,频率,位宽,声道。如果能自己播放一个wav就OK了。OpenAL,专注实现游戏中的环绕音效效果等等。这些是基础,入门之后就可以做些简单的小游戏了,就像你学完了C你就可以做任何软件了,但谈不上效率和质量,如果要进军企业,则还需要学习高级的便捷式开发框架,但是那些框架引擎都是基于基础的平台和框架搭建起来的。个人曾经也有一颗游戏梦,也是刚毕业的时候进了一家javaweb开发公司,jsp/servlet html css,jdbc,mysql这些天天搞,觉得没前途,私底下重温了一下C/C++的书(大学学过,基础还有)半年后转型到了一家多媒体公司,DX,OpenGL,视频声音播放录制等等,最后终结在这条路线上了,没有继续往游戏方向走的意愿了,这都是个人原因,就不明说了。opengl入门可参见我的个人博客http://blog.csdn.net/yangyk125追问对对对,整天都是网页网页,说什么系统,都觉得不好意思提,就这网页还敢叫系统....我学过Java基础,不知道如何再学C++,是从C学起呢还是从C++学起?追答从C开始,然后再是C++。C/C++才是最贴近计算机本质的语言,因为它是除了汇编以外的最静态语言。静态语言就是代码直接编译成计算机指令,而不像java有虚拟机。所以C++编程的思想比java要低一级,java中操作一个对象,你想到的是你操作的是一个对象。而C++中你操作一个对象,想到的是实际上操作的是一段内存空间。最大的区别就是思想上的区别,语法上的差异都是服从设计思想的。追问入门的话需要什么辅助的教材或视频呢,有没有什么需要注意的地方,怎么才能快速入门呢?追答搞过实际开发的经验,至少比零基础是不知好了多少了,至少啥子for,while不用再重来了嘛。C是上世纪六七十年代的东西,非常简陋,没有class,没有interface,没有extend。和java比起来就是多了指针 而指针是C和C++与java最大的区别,也体现了前面我说的一个是操作对象,一个是操作内存的差异。C中,字符串是一段连续的内存空间,一个字节一个字符。标准C里面 int好像是2个连续字节表示。就相当于java中的short。java中复制一个对象,需要逐字段的拷贝,或者实现clone函数。C中赋值一个数据体——内存拷贝就行了,比如int a = 1000 ; int b = a ;//这是赋值方式进行拷贝或者int a = 1000 ;int b ;memcpy(&b, &a, 2) ;//从a的内存地址拷贝2个字节到b的内存地址。具体的差异你要按照一本教程开始往下走,看到已经明白了的地方,就跳过就行了。《C语言程序设计》都是看这本书入门的。更多追问

查看全部回答
java策略模式和工厂模式的区别 显示全部
王夕新
2017-05-25

工厂模式创建型模式策略模式行性模式关注象创建关注行封装策略模式定义系列算些算需要候替换扩展.工厂模式型模式需要候构建具体实例.面情况应考虑使用策略模式:1. 系统面许类间区别仅于行使用策略模式态让象许行选择种行2. 系统需要态几种算选择种些算包装具体算类面些具体算类都抽象算类类换言些具体算类均统接口由于态性原则客户端选择使用任何具体算类并持数据类型抽象算类象3. 系统算使用数据让客户端知道策略模式避免让客户端涉及必要接触复杂与算关数据4. 象行用恰模式些行使用重条件选择语句实现使用策略模式些行转移相应具体策略类面避免使用难维护重条件选择语句并体现面向象设计概念 策略模式优点缺点策略模式优点缺点优点:1. 策略模式提供管理相关算族办策略类等级结构定义算或行族恰使用继承公共代码移父类面避免重复代码2. 策略模式提供替换继承关系办继承处理种算或行用策略模式使用算或行环境类能些类每类提供同算或行算或行使用者算或行本身混起决定使用哪种算或采取哪种行逻辑算或行逻辑混合起能再独立演化继承使态改变算或行变能3. 使用策略模式避免使用重条件转移语句重转移语句易维护采取哪种算或采取哪种行逻辑与算或行逻辑混合起统统列重转移语句面比使用继承办要原始落策略模式缺点:1. 客户端必须知道所策略类并自行决定使用哪策略类意味着客户端必须理解些算区别便适选择恰算类换言策略模式适用于客户端知道所算或行情况2. 策略模式造策略类候通依赖于环境状态保存客户端面策略类设计共享策略类实例同客户端使用换言使用享元模式减少象数量策略模式与其模式都着广泛联系Strategy容易Bridge模式相混淆虽结构相似却解决同问题设计Strategy模式注重于算封装Bridge模式注重于离抽象实现抽象体系提供同实现Bridge模式与Strategy模式都体现"Favor composite over inheritance"观点

查看全部回答
java中四种访问权限在同类体中,同一包中,不同包中的权限范围 显示全部
耿严
2017-05-09

图" class="ikqb_img_alink">1. public 表明该数据员、员函数所用户放所用户都直接进行调用2. private 表示私私意思除class自外任何都直接使用私财产神圣侵犯嘛即便朋友都使用3. protected 于、朋友说public 自由使用没任何限制于其外部classprotected变private 4. friendly修饰类叫友元类另外类使用友类创建象要保证同包说包内类互友元类

查看全部回答
关于java的链表地址指向的问题 显示全部
程方清
2017-05-08

java 比String str1 ="abc",虚拟机内辟段空间存放abc,再给 str1赋值str1想新辟存储空间位置原abc位置使用情况先java收机制清空说始 current =head,并head=XX作说明没给head赋值所head变直current赋值所current直指向新空间些与head关作PS: 面代码太没看追问嗯,这个我大致能够理解,但是最后在尾部插入一个新的节点的时候用到的current.setNext(node);实际上就是对current.next赋值的一个过程(因为next是一个private,所以不能直接赋值,但是是同一个意思),也就是说在遍历到了head的当前最后一个节点,得到的current,给current.next赋值了以后,head也多了最后一个节点,这又是为什么?

查看全部回答
java里让一个date每次加5分钟等于另外一个指定的date 显示全部
车力宏
2017-05-12

/***@param_1time始间*@param_2time结束间*@return*/publicstaticList<String>getTimeList(String_1time,String_2time){if(_1time==null||"".equals(_1time)||_2time==null||"".equals(_2time)){returnnull;}List<String>list=newArrayList<String>();Longm=5L*60L*1000L;//5钟(毫秒)SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm");try{Longtime1=sdf.parse(_1time).getTime();//获间戳Longtime2=sdf.parse(_2time).getTime();//获取间戳Longparam1=time1;for(Longi=time1;i<=time2;i++){//间始循环if(i==param1+m){//前间间加5钟候记录param1=i;list.add(sdf.format(param1));}}}catch(ParseExceptione){e.printStackTrace();}returnlist;}

查看全部回答
java 应用海伦公式求三角形面积(要求判断三角型是否成立) 显示全部
高猛
2017-05-12

importjava.util.Scanner;publicclassHeron{publicstaticvoidmain(String[]args){Doublea,b,c;Scanners=newScanner(System.in);System.out.println("输入三边:");try{a=Double.parseDouble(s.nextLine());b=Double.parseDouble(s.nextLine());c=Double.parseDouble(s.nextLine());}catch(Exceptione){System.out.println("格式误");s.close();return;}if(isTriangle(a,b,c))System.out.println("面积:"+calcArea(a,b,c));elseSystem.out.println("确三角形");s.close();}publicstaticbooleanisTriangle(Doublea,Doubleb,Doublec){if((a+b>c)&&(a+c>b)&&(b+c>a))returntrue;returnfalse;}publicstaticDoublecalcArea(Doublea,Doubleb,Doublec){Doubles=(a+b+c)/2;Doublearea=Math.sqrt(s*(s-a)*(s-b)*(s-c));returnarea;}}结:图" class="ikqb_img_alink">

查看全部回答
邀您回答

招聘技巧

显示全部

西安市高新区社保中心的具体地址在那里

显示全部

五险一金每月所要交纳的多少费用?

显示全部

社保金额与工资多少有关系吗?

显示全部

工龄和五险一金什么关系

显示全部

公司不买五险一金

显示全部

移动互联网应用技术是干什么的?

显示全部

移动互联网应用技术是干什么的?

显示全部

北京社保中心电话多少

显示全部

关于退休后社保还要不要继续交的问题。

显示全部
智联介绍 | 人才招聘 | 网站地图 | 加入智联 | 法律声明 | 保密承诺 | 联系方式 | 常见问题 | | Investor Relations 您对 Zhaopin.com 有任何建议或意见请 联系我们
未经 Zhaopin.com 同意,不得转载本网站之所有招聘信息及作品 智联招聘网版权所有© 1997-2017
京ICP备12025925号 电信业务审批[2001]字第233号函 京公网安备 11010502002133号