Java基础语法(1)

1.拆箱和装箱

	//自动装箱
	Integer a = 1;
	Integer b = Integer.valueOf(1);
	//自动拆箱
	int c = a;
	int d = a.intValue();

2.枚举

package com;
//枚举类
public enum Color {

	红色("Red"),绿色(),黄色;
	private Color(String color) {
		this.color = color;
	}
	private Color() {
	}
	private String color;
	public String getColor() {
		return color;
	}
}
//调用枚举类
	public static void main(String[] args) {
		Color a = Color.红色;
		Color b = Color.绿色;
		Color c = Color.valueOf("黄色");
		Color d[] = Color.values();
		System.out.println(b.getColor());
	}

枚举跟普通的类相似,只是在类基础上,允许定义多个枚举对象,在其他类中可以直接调用该对象

3.匿名内部类

只创建一次对象的类,需是继承类或接口,其对象与普通继承父类的一样。具体例子看多线程。
(唯一不同:当使用父类作为类型,内部类重写的方法生效,成员变量不生效,不知道为啥)

4.接口
由抽象方法和静态常量组成。
[public] [static] [final] 数据类型变量名=常量值;
[public] [abstract] [native] 返回值类型方法名(参数列表);
说明:抽象方法和静态常量必须是默认或public修饰。

5.lambda表达式
lanbda表达式用于:创建只有一个方法的接口的匿名类

public interface People {
	public void go(String way);
}
//以下两种写法等同
People p1 = (w) ->{System.out.println(w);};

People p2 = new People() {
	@Override
	public void go(String w) {
		System.out.println(w);
	}
};

6.数组,集合,Json数组间的转换

	public static void main(String[] args) {
		
		JSONArray jsonArray = new JSONArray();
		List<String> list = new ArrayList<String>();
		//穿插一下数组的3种定义方式
		String[] array1 = new String[5];
		String[] array2 = new String[]{"a","b","c"};
		String[] array3 = {"a","b","c"};
		//转json数组
		jsonArray = JSONArray.fromObject(list);
		jsonArray = JSONArray.fromObject(array1);
		//转list集合
		list = (List<String>) JSONArray.toCollection(jsonArray, String.class);
		list = (List<String>) Arrays.asList(array1);
		//转数组
		array1 = (String[]) JSONArray.toArray(jsonArray, String.class);
		array1 = (String[]) list.toArray();
		
		JSONObject json = new JSONObject();
		//转map集合
		Map map = json;
		//转json对象
		json = JSONObject.fromObject(map);

	}

7.对象内存

//整型在-128~127范围引用的都是系统缓存的同一对象
Integer a = 127;
Integer b = 127;
//使用new关键字会创建新的对象
Integer c = new Integer(127);

//双引号创建字符串都是引用系统缓存的同一对象
String a = "哈";
String b = "哈";
//使用new关键字会创建新的对象
String c = new String("哈");
//建议虚拟机销毁没有引用的对象
System.gc();
//建议虚拟机执行没有引用的对象的finalize()方法
System.runFinalization();

8.Java时间

1.格式转换

Date ←→ Calendar
Date ←→ String
Date ←→ long

//获得日历对象
Calendar calendar = Calendar.getInstance();
//调整
calendar.add(Calendar.DATE, 1);
//重设
calendar.set(Calendar.HOUR_OF_DAY, 10);
//获取
calendar.get(Calendar.YEAR);
//日历对象转时间对象
Date date = calendar.getTime();
//时间对象转日历对象
calendar.setTime(date);

//打印结果: 公元 2017-11-29 10:28:46:396 星期三 上午 CST
SimpleDateFormat sdf = new SimpleDateFormat("G yyyy-MM-dd HH:mm:ss:SSS E a z");
//时间对象转字符串
String str = sdf.format(date);
//字符串转时间
date = sdf.parse(str);

//1970.1.1至今的毫秒数
long time = System.currentTimeMillis();
//时间对象转相对时间
time = date.getTime();
//相对时间转时间对象
date = new Date(time);

2.Calendar常量

//当前年     
n = Calendar.YEAR;    
//当前月,从0开始     
n = Calendar.MONTH;    
//当前日期   
n = Calendar.DATE; 
//当前月的第几天,与DATE等价    
n = Calendar.DAY_OF_MONTH;    
//当前时钟,24小时制     
n = Calendar.HOUR_OF_DAY;    
//当前时钟,12小时制    
n = Calendar.HOUR;    
//当前分钟     
n = Calendar.MINUTE;    
//当前秒     
n = Calendar.SECOND;    
//周几(1~7代表周日~周六)
n = Calendar.DAY_OF_WEEK;     
//0:上午,1:下午
n = Calendar.AM_PM;    
//当前年的第几周
n = Calendar.WEEK_OF_YEAR;    
//当前月的星期数     
n = Calendar.WEEK_OF_MONTH;    
//当前日在月中的第几个星期 
n = Calendar.DAY_OF_WEEK_IN_MONTH;    
//当前年的第几天     
n = Calendar.DAY_OF_YEAR;

9.Jdbc

String url = "jdbc:mysql://localhost:3306/ssm";
String username = "root";
String password = "123456";
String sql = "select * from user where 1=?";
//获取数据库连接
Connection conn = DriverManager.getConnection(url,username,password);
//设置sql语句及参数
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setObject(1, "1");
//查询操作,获取结果集
ResultSet rs = pstmt.executeQuery();
//增删改操作,返回修改行数
int n = pstmt.executeUpdate();
//获取列数据
ResultSetMetaData rsmd = rs.getMetaData();

for(int i=1;i<rsmd.getColumnCount()+1;i++) {
	System.out.println(rsmd.getColumnName(i)+":"+rsmd.getColumnClassName(i));
}
while(rs.next()) {
	System.out.println(rs.getString(1)+":"+rs.getString(2));
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值