java基础 2014.3.12
发现一个很奇怪的事情,今天登陆CSDN怎么也登陆不了,浏览csdn上的其他的东西都能正常显示。所以只能先写在word文档里,明天再贴上去,鼓励自己坚持。。。
闲话少说,以下开始记录。
(一)初识java
从第一个java程序开始吧,众所周知,hello world
文件名:Demo.java
class Demo{
public static void main(String[] args){
System.out.println("Hello World");
}
}
1一个java文件中可以有多个java类
2.public的class名必须和java文件名相同
3.main和程序入口
4.cmd控制台下编译java文件生成class
cmd> E:(Demo文件所在的位置)
cmd> javac Demo.java
5.class文件在JVM中运行
cmd> java Demo
当然,这是初学者的做法。真正开发过程中不会如此麻烦,都用IDE开发工具了。以上,了解即可~
其他基本概念:
1.java是一种纯面向对象的语言
2.java的运行原理:
.java源代码->编译->.class字节码文件->解释执行->JVM-OS运行
3.java的三大版本:J2SE J2EE J2ME
4.面向对象 OOP
5.面向对象的三大特征:封装、继承、多态
6.面向过程:注重功能函数定义 4个ATM函数
7.面向对象:注重业务逻辑,忽略细节 ATM类 4个ATM对象
(二)java语法
一、java语法之输入输出
1>输出 控制台 System.out.println(""); 也可作为调试用
2>输入 控制台 Scanner
1)Scanner sc = new Scanner(Sytem.in);
2)import java.util.Scanner;
3)String strName = sc.nextLine();
二、java语法之注释
1>单行注释 //
2>多行注释
/*
*/
3>文档注释
/**
*
*/
个人认为注释是非常重要的,不仅在团队合作中更加易于沟通和理解,对自己来说,早前写过的代码放了一段时间也极有可能忘记,而有注释的话,就不用浪费时间再去看复杂的逻辑了。
三、java语法之数据类型
1>值类型:存放在栈中,自动清空栈无用空间
字符类型:char
整数类型:int short long byte
小数类型:float double
布尔类型:boolean
2>引用类型:存放在堆栈中,必须要靠垃圾回收机制才能清空堆的无用空间
Scanner
System
String
自定义类等
四、java语法之控制语句(个人认为这个是工作中最常用到的东西了,反正我目前感觉如此)
1>选择语句
if(){} 单分支
if() else if() else{} 多分支
switch(条件){
case 数字或字符:语句;break;
default:默认分支;break;
}
2>循环语句
while(){}
do{} while()
for(){}有循环次数的循环
foreach()循环、遍历的是数组或者集合
语法:
3>null语句
null;
五、java语法之运算符
算术运算符:+ - */ % ++ --
逻辑运算符:&& || ! &位的与 |
关系运算符:> <>= <= = =
赋值运算符:= += *= -= /=
条件运算符:? :
其他运算符:. []
六、java语法之数组
定义:分配一个连续的存储空间
声明数组:
数据类型[] 数组名;
数据类型 数组名[];
定义数组长度:数组名=new 数据类型[长度]
初始化数组:数据类型[] 数组名 = new 数据类型[长度];
数据类型[] 数组名 = {10,20,30,40};
使用数组:数组名[下标-索引值从0开始]
遍历:用foreach 语法如下:
for(数据类型 临时变量名 :数组名){
处理临时变量
}
应用:排序
以下是冒泡排序的原理图,老师画的。拿来一用。
七、java基础语法之类
1>成员变量|属性:修饰符public|private 数据类型 变量名=初始值
2>成员函数|方法:传参和返回值
修饰符 public|private 返回值类型 函数名(传参){
//函数体
}
//传参带返回值类型
public int add(int arg1,int arg2){
return arg1+arg2;
}
//传参 不带返回值
public void sub(int arg1,int arg2){
System.out.println(arg1-arg2);
}
3>类成员变量:static 成员变量
4>类成员函数:static 成员函数
5>构造函数:实例化,初始化类内部成员。没有返回值类型,必须与类名相同。
修饰符 public|private 类名(){
}
6>类的使用 类名 对象名 = new 类名(); 对象名.方法();
八、java语法之常见工具类,类很多,方法也很多,多看API文档,以下就列举一些吧
1.Arrays Arrays.sort();//排序
2.随机类 Random() .nextInt(max+1) 0~max-1
3.String length() indexOf() subString() split() equals() String.valueOf()
4.日期
1>Date 类型:过时
2>Calendar 类型 :单例模式 日期时间使用的安全性
得到系统时间
Calendar nowCal = Calendar.getInstance();
int iYear = nowCal.get(Calendar.YEAR); //得到系统时间 月份从0开始算起
Calendar myCal = Calendar.getInstance();
myCal.set(Calendar.YEAR,值) ; //自定义时间
3>timeStamp
Timestamp ts = new Timestamp(System.cruuentTimeMillis());
String tsStr = "2014-03-12 21:53:45";
try{
ts = Timestamp.valueOf(tsStr);
}catch(Exception e){
e.printStackTrace();
}
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = "";
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
//方法一
tsStr = sdf.format(ts);
System.out.println(tsStr);
//方法二
tsStr = ts.toString();
System.out.println(tsStr);
} catch (Exception e) {
e.printStackTrace();
}
4>日期的算术运算 Long 毫秒值 =Date.getTime();
5>格式化日期类 SimpleDateFormat
Calendar格式化打
SimpleDateFormat sdf = new SimpleDateFormat (“yyyy-MM-dd HH:mm:ss”);
sdf.format(Calender.getTime() )
字符串转换为Calendar
String str =sc.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat (“yyyy-MM-dd HH:mm:ss”);
//string =>Date
Date = sdf.parse(str)
//Date=>Calender
Calendar cal =Calendar.getInstance();
cal.setTime(Date)
/**********************Date类型的使用************************/
Date now = new Date();
System.out.println(now);
Date myDate =new Date(2012-1900,3-1,18);
System.out.println(myDate);
/********************************系统Calender时间对象****************************************/
//得到系统时间对象
CalendarnowCal = Calendar.getInstance();
//yyyy-mm-dd
int iYear =nowCal.get(Calendar.YEAR);
int iMonth =nowCal.get(Calendar.MONTH)+1;
int iDay =nowCal.get(Calendar.DATE);
int days =nowCal.get(Calendar.DAY_OF_YEAR);
System.out.println(iYear+"-"+iMonth+"-"+iDay+":"+days);
/******************系统Calender自定义时间对象******************/
//自定义时间对象
CalendarmyCal = Calendar.getInstance();
//设置年月日
myCal.set(Calendar.YEAR, 2012);
myCal.set(Calendar.MONTH, 2);
myCal.set(Calendar.DATE, 14);
myCal.set(Calendar.HOUR,9);
//自定义系统时间添加天数
myCal.add(Calendar.DATE, 7);
//打印自定义时间对象
// intiYear1 = myCal.get(Calendar.YEAR);
// intiMonth1 = myCal.get(Calendar.MONTH)+1;
// intiDay1 = myCal.get(Calendar.DATE);
// intdays1 = myCal.get(Calendar.DAY_OF_YEAR);
// System.out.println(iYear1+"-"+iMonth1+"-"+iDay1+":"+days1);
/**********格式化日期类**********************/
//格式化日期类
SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String strCal= sdf.format(myCal.getTime());
System.out.println(strCal);
/************日期间算术运算*******************/
//日期间算术运算
Date nowDate= nowCal.getTime();//Calendar=》Date
Date myDate =myCal.getTime();
long lnowDate =nowDate.getTime();
long lMyDate =myDate.getTime();
System.out.println(lnowDate-lMyDate);
if(lnowDate-lMyDate>0)
{
System.out.println("产品过期");
}
else{
System.out.println("产品未过期");
}
/*************String类型转换成Calender*****************/
//String类型转换成Calender
Scanner sc = new Scanner(System.in);
System.out.print("请输入日期:");
String str =sc.nextLine();//2012*021546
//借助SimpleDateFormat
SimpleDateFormatsdf2 = new SimpleDateFormat("yyyy-MM-dd");
try {
DateinputDate = sdf2.parse(str);
//转换成Calendar
CalendarinputCal = Calendar.getInstance();
inputCal.setTime(inputDate);
System.out.println("输入年份:"+inputCal.get(Calendar.YEAR));
} catch (ParseException e){
// TODO Auto-generated catch block
e.printStackTrace();
}//错误处理:异常
今天就到这里了。over,碎觉。。