Java容易犯错误的问题思考

float型 float f = 3.4 是否正确

	不正确,应该用强制类型转换。如下所示:float f = (float)3.4  或float f = 3.4f 在java里面,没小数点的默认是int 有小数点是double;
编译器是自动向上转型,如int 转成 long 系统自动转换没有问题,因为后者精度更高 double 转成 float 就不能自动做了,所以后面的加上个 f;

java中有4中访问修饰符;

(1)private(2)public(3) protected(4) friendly.
具体解释:
(1)private :被private修饰的变量和方法,只能在本类中使用。在其他的类中访问不到。在java中实体类中的变量被定义为pivate,外界使用的时候,可以使用get,set方法操作。 (2)public:被public修饰后,可以被任何类访问,不管这个类是否在同一个包中。 (3)protected:只能在本类,同一个包中被访问,如果不在同一个包中,必须是该成员所属的子类。否则无法访问。 (4)friendly:是能在同一个类中或者同一个包中被访问。

运算符优先级:从左到右


[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> < > < = > = == != & ^ && || ? : op=

switch语句后的表达式的值是哪些类型?

一般格式:
switch (表达式)

case 常量标号1:语句序列1;
break;
case 常量标号2:语句序列2;
break;

case 常量标号n:语句序列n;
break;
default: 语句S;
} 不一定要是int类型,只要是隐式转化为int类型也是可以的String也可以的哦 其中:
①表达式:可以控制程序的执行过程,表达式的结果必须是整数、字符或枚举量值。
②case后面的常量标号,其类型应与表达式的数据类型相同。表示根据表达式计算的结果,可能在case的标号中找到,标号不允许重复,具有唯一性,所以,只能选中一个case标号。尽管标号的顺序可以任意的,但从可读性角度而言,标号应按顺序排列。
③语句序列是switch语句的执行部分。针对不同的case标号,语句序列的执行内容是不同的,每个语句序列允许有一条语句或多条语句组成,但是case中的多条语句不需要按照复合语句的方式处理(用{}将语句括起来),若某一语句序列i为空,则对应的break语句可以省略(去掉)。
④break是中断跳转语句,表示在完成相应的case标号规定的操作之后,不继续执行switch语句的剩余部分而直接跳出switch语句之外,继而执行switch结构后面的第一条语句,如果不在switch结构的case中使用break语句。程序就会接着执行下面的语句。
⑤default用于处理所有switch结构的非法操作。当表达式的值与任何一个case都不匹配时,则执行default语句。

Java 日期相关Date、SimpleDateFormat、Calendar区分和使用

	(1)Date类
类Date表示特定的瞬间,精确到毫秒。用距离1970年1月1日00:00 的毫秒数(long) 类型来表示一个特定的时间点,使用Calendar来替代
常用的方法:long getTime() void setTime(long time) 例子:
public class T01Date {
public static void main(String[] args) {
//getTime():返回的时间是距离1970年的毫秒数.值不受setTime()的影响
//date值受setTime()的影响
Date date=new Date();
long current=date.getTime();
System.out.println(current);
System.out.println(date);
long time=current+1000*60*60*24;//时间设置为明日此时
date.setTime(time);
System.out.println(date.getTime());
System.out.println(current);
System.out.println(date);// Thu Aug 02 23:34:39 CST 2018
}
} (2)SimpleDateFormat 根据特定的日期格式在Date和字符串指甲能转换
常用方法:String format(Date date):将日期按照制定的格式转换成字符串
Date parse(String str):将字符串按照转指定格式转换成Date 可以用来指定格式的字符 例子:
/**
* java.text.SimpleDateFormat
* 该类可以根据一个指定的日期格式将Date于String
* 之间相互转换
* @author qichunlin
*
*/
public class T02SimpleDateFormat {
public static void main(String[] args) throws ParseException {
Date now =new Date();
//yyyy-MM-dd hh:ss:mm
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh时ss分mm秒");
String str = sdf.format(now);
System.out.println(str); //a 居然能区分上下午汉字
String strDate="2018年8月02日下午12点20分30秒";
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日ahh点ss分mm秒");
Date date=sdf2.parse(strDate);
System.out.println(date); }
} (3)Calendar java.util.Calendar 是抽象类,主要用来对时间分量进行计算
常用方法:Date和Calendar之间的转换
//默认创建出来的Calendar的实现类表示当前系统时间
Calendar c=Calendar.getInstance();
//将Calendar转换为Date
Date date=c.getTime(); //Date->Calendar
/*
* void setTime(Date date)
* 该方法可以使当前Calendar表示给定的
* Date所表示的时间
* */
c.setTime(date);
}
} getInstance() Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance() 用来获取Calendar类型的实例 综合起来常用的 public void test01() throws ParseException{
//要求用户输入一个日期,计算后,指定格式输出日期
/*String--SimpleDateFormat()-->Date
Date-->Calendar
使用Calendar进行相应计算
Calendar-->Date
Date--SimpleDateFormat-->String
*/
String input="2018-03-26"; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=sdf.parse(input);
Calendar c=Calendar.getInstance();
//set(),与add()
c.setTime(date);
c.add(Calendar.YEAR,1);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_WEEK,1); date=c.getTime();
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd分hh时ss分mm秒");
String strTime=sdf2.format(date);
System.out.println(strTime);
}

2018.8.3 Java中容易犯错误的问题思考与总结的更多相关文章

  1. 《java中异常和错误》

    异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...

  2. 编程中易犯错误汇总:一个综合案例.md

    # 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...

  3. Java开发者易犯错误Top10

    本文总结了Java开发者经常会犯的前十种错误列表. Top1. 数组转换为数组列表 将数组转换为数组列表,开发者经常会这样做: List<String> list = Arrays.asL ...

  4. 2018.2.2 java中的Date如何获取 年月日时分秒

    package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; pub ...

  5. 2018.8.1 Java中的反射和同步详解

    为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他 ...

  6. 2018.3.31 java中的递归

    java中的递归 1.概念 定义一个方法时,出现本方法调用本方法的过程,称之为递归 2.特点 必然有一个边界条件 使用递归代码往往更简洁,可读性强 3.什么时候使用递归 n的阶乘和n的累加定义 f(n ...

  7. Java中关于String类型的一些思考

    作为初学者在学习Java的时候,变量类型是不可避免会遇到的,在以往我们的印象中字符串String都是作为基本类型而存在的,但是在Java中String类型确是一个实实在在的引用类型,是可以通过new关 ...

  8. Java 中序列化与反序列化引发的思考?

    java 中序列化指从对象转变为 二进制流的过程中需要进行序列化,而反序列化指二进制流转换为java 对象.那么有的时候java 存储到数据库不需要序列化, 而计算机系统本质存储的就是二进制文件,数据 ...

  9. 2018.9.30 Java中数组的存储与内存分配

    java 数组与集合的区别 集合:长度可变,可以存放不同类型的元素,只能存放引用类型! 数组:长度固定,只可以存放相同的同种类型的元素,可以存放数据类型也可以存放引用类型! 数组定义的三种方式 // ...

随机推荐

  1. B树与B+

    简单剖析B树(B-Tree)与B+树https://blog.csdn.net/z_ryan/article/details/79685072 B树和B+树的插入.删除图文详解https://www. ...

  2. apache 与php的安装

    1 系统环境与软件   1 php5.5.6 下载链接:http://windows.php.net/download/#php-5.5 推荐 V11 x64,也就是64bit的. 2 apache2 ...

  3. Storm与Spark区别

    Storm擅长于动态处理大量实时生产的小数据块,概念上是将小数据量的数据源源不断传给过程: Spark擅长对现有的数据全集做处理,概念是将过程传给大数据量的数据. 二者设计思路相反.Storm侧重于处 ...

  4. c++11 多线程 1

    第3章 线程间共享数据 本章主要内容 共享数据带来的问题 使用互斥量保护数据 数据保护的替代方案 保护共享数据结构的最基本的方式,是使用C++标准库提供的互斥量(mutex). 清单3.1 使用互斥量 ...

  5. Excel中,用CONCATENATE函数生成SQL语句

    1.语法 CONCATENATE(text1, [text2], ...)CONCATENATE 函数语法具有下列参数(参数为:操作.事件.方法.属性.函数或过程提供信息的值.):Text1 必需.要 ...

  6. RTT学习之线程

    一 线程的创建和删除:rt_thread_create()创建的句柄,对应的删除rt_thread_delete(),注意线程的删除只是将线程的状态该为close,进入空闲任务才删除.rt_threa ...

  7. MATLAB线性回归方程与非线性回归方程的相关计算

    每次比赛都需要查一下,这次直接总结到自己的博客中. 以这个为例子: 2.线性方程的相关计算 x=[1,2,3,4,5]';%参数矩阵 X=[ones(5,1),x];%产生一个5行一列的矩阵,后接x矩 ...

  8. CI控制器调用内部方法并载入相应模板的做法

    当我打开链接:http://localhost/3g/index/open/a/b?from=timeline后,判断链接中的from是否等于timeline,如果等于timeline,那么就调用控制 ...

  9. WEBAPI测试

    测试 #region 测试 [HttpPost] public HttpResponseMessage UserData(int userId, string userName) { var user ...

  10. C# 解决 邮件发送Excel附件后,excel处于锁定状态

    当使用c#自带的MailMessage类发送excel附件时,再次打开excel会提示处于锁定状态. 解决思路:Attachment是添加附件的类,邮件发送后没有释放该类 public string ...