当前位置:网站首页 > Java基础 > 正文

java12个基础知识



1、查看已安装jdk文件路径
CMD输入java -verbose。
2、java学习提升路线
java学习视屏地址:
http://www.icoolxue.com/album/show/38
https://blog.csdn.net/u0/article/details/?st_type=null
各阶段所需要看的书:
《Java编程思想》,《大话设计模式》,《重构 改善既有代码的设计》,《effective java》《深入理解Java虚拟机》《Java并发编程实战》《深入理解计算机系统》
3、java基础知识汇总
1、java中的四
面相对象的四大特征:抽象,封装,继承,多态
2、j2ee原始体系结构:
3、变量
变量其实就是在内存中开辟的一块用于存储数据的空间。
对于变量的使用来说大致分为以下几个步骤:
1)变量的声明:想要使用变量就要先声明变量,确定它的类型。(类型有基本类型:byte->short->char->int->long->float->double,boolean;引用类型:除去基本类型以外其余都是引用类型,比如String,Integer,数组,list,对象等。引用类型有四种方式:强引用,弱引用,软引用,虚引用。
强引用(Final Reference):默认引用类型,类似于Object obj=new Object()这样的引用。特点如下:
1、GC在任何时候都不会回收强引用,即便抛出了OOM错误。
2、可以直接访问对象。
3、可能存在导致内存泄露的情况.
弱引用(Weak Reference):用来描述非必须的对象,它的生命周期是在产生至下一次GC工作之前,当GC工作时,无论内存情况如何都会对此类引用进行回收。被回收的此类应用会进入到注册引用队列。弱引用的相关实际案例可以参考WeakHashMap,后期补充
软引用(Soft Reference):软java12个基础知识引用一般用来表达一些有用但是非必须的对象,GC会在内存不够的情况下进行回收
虚引用(Phantom Reference):最弱的一种引用类型,随时都有可能被GC回收,必须与引用队列一起使用,作用在于跟踪垃圾回收过程)
2、变量的命名:符合java命名规范(首字母不能以数字开头,不可使用保留字,大小写敏感,可以有数字,字母,_和$组成),符合驼峰命名,符合标识符命名规范,言简意赅,意思清晰
3、变量的初始化:未被初始化的变量是无法使用的,初始化可以在变量声明时就初始化,也可以在首次使用之前进行初始化.
4、变量的使用:进行存取,计算等操作。
变量使用的常见问题:
变量在使用的过程中,常见问题总结为如下几点:
1)使用未经声明的变量。
2)使用不符合Java标识符命名规则的变量。
3)使用未经初始化的变量。
4)变量的赋值与变量的类型不匹配
整数类型在使用的过程中,常见的问题有以下几点:
1)整数直接量超出了整数的范围。
2)关于整数的除法:两个整数相除,会舍弃小数的部分,结果也是整数。
3)整数运算的溢出:两个整数进行运算时,其结果可能会超过整数的范围而溢出。
4)表示long直接量,需要以 L 或 l 结尾。
浮点类型在使用的过程中,常见的问题有以下几点:
1)浮点数的直接量为double类型。
2)浮点数存在舍入误差问题。
char类型在使用的过程中,常见的问题有以下几点:
1)字符类型存储中文。
2)char类型的值可以作为整数类型直接使用。
数据类型转换在使用的过程中,常见的问题有以下几点:
1)强制转换时的精度丧失和溢出。
2)数值运算时的自动转换。
3)byte、char、short转换为int的问题。
详细讲解:http://note.youdao.com/noteshare?id=3fdefa1904d6fc4e4dc522dcf5&sub=16CA2A4CAE5E4371A7E81B41EEB0727B
4、运算符
补充点:“+”有两种运算规则,一种是两端为数字则为数学加法运算,另外一种是实现字符串的连接,也可以实现字符串与其他数据类型的“相连”。上述代码中,字符串之前的运算按照加法运算,字符串之后的运算按照字符串相连。
5、方法
1.用于封装一段特定的业务逻辑功能
2.方法应尽可能独立,一个方法只干一件事
3.方法可以被反复的调用多次
4.较少代码重复,维护方便,便于协作开发
定义方法的5个要素:
修饰词 返回值类型 方法名 参数列表 方法体
System.currentTimeMillis() 方法:该方法返回1970年1月1日零点到此时此刻所经历的毫秒数,其数据类型为long,经常用于计时操作。示例:
以下代码的功能为计算1累加到的所耗的时间,代码如下所示:
  1.     public static void main(String[] args) {
  2.         //开始时间
  3.         longstartTime = System.currentTimeMillis();
  4.         //计算从1加到的和
  5.         int sum = 0;
  6.         for (int i = 1; i <= ; i++) {
  7. sum+=i;
  8.         }
  9.         //结束时间
  10.         longendTime = System.currentTimeMillis();
  11.         //输出耗时
  12.         System.out.println("耗时:"+(endTime-startTime)+"毫秒");
  13.     }
6、枚举
enum修饰,一般用于常量的定义,个人感觉比常量类好用。
示例:
@Getter
@AllArgsConstructor
public enum DemoEnum(){
CONSTANT_DEMO("constant","常量");
private String code;
private String desc;
}
7、访问控制修饰符
public:公有,所有类都可以访问
default:默认修饰符,同包内访问
protected:保护型。同包内以及继承了此类的外包类可以访问
private:私有类,只有本类内可以访问。
8、静态 static
静态方法不能直接访问实例变量
静态块:
属于类,被static修饰,在类加载期间自动执行加载,且只加载一次。一般用于加载静态资源。
9、接口
1.是一个标准,规范
2.是一种数据类型(引用类型)
3.由interface定义,只能包含常量和抽象方法
4.接口不能被实例化
5.接口需要被实现(implements),被实现后必须重写接口的所有抽象方法
6.一个类可以实现多个接口,如果又继承又实现,一定要先继承后实现
7.接口可以继承接口
10、抽象类
abstract修饰,平常类有的,它都可以有。且extends抽象类时可以选择override方法,不需要全部override;方法为抽象方法时,所在的类必须为抽象类,且不能被实例化。
11、继承
一个类只能继承一个父类;默认情况下所有类都是继承了Object类。
1)子类继承父类的成员变量
能够继承public,protected成员变量,不能继承private成员变量;
父类的包访问权限成员变量,只有子类在与父类同包的情况下才能继承;
继承后,如果子类有和父类相同名称的成员变量,子类的成员变量会屏蔽掉父类的,如果想 要访问父类的,可以用super关键字
2)子类继承父类的方法
访问修饰符的继承与成员变量一致;
如果子类有与父类相同名称的方法,则会覆盖掉父类方法,即重写或重载;调用父类方法,可以使用super关键字。
3)构造器
子类不能继承父类的构造器;父类的构造是子类来引用的,不是继承的
12、重载与重写
重载:
存在于子父类和同类中;方法名称相同,但参数类型,参数顺序,参数个数至少有一个是不一致的;只有返回类型不一致时不能重载;对访问权限修饰符无要求
重写:
存在于子父类中;方法名称,返回值,参数类型,顺序,个数都相同;访问权限修饰符只能小于等于父类的修饰符;如果父类中有final修饰的方法,则不能被重写;(父类返回类型是void或基本类型时,子类必须的返回类型必须相同,返回类型是引用类型时,可以是小于等于父类的)
区别对比:
区别点
重载(Overloading)
重写(Overiding)
定义
方法名称相同,参数的类型,顺序或个数不同
方法名称、参数类型、返回值类型全部相同
权限
对权限没要求
被重写的方法不能拥有更严格的权限
范围
发生在继承类,同类中
发生在继承类中

加载驱动类:

创建连接

创建statement实例

createStatement();

执行sql

处理结果

关闭连接

//取消自动提交事务

conn.setAutoCommit(false);

//手动提交事务

conn.commit();

//发生异常时回滚事务

DBUtil.rollBack(conn);

session方法:

  1. <session-config>
  2. <session-timeout>30</session-timeout>
  3. </session-config>

  1. void setMaxInactiveInterval ( int seconds ){}

cookie方法:

内部类大致分为:成员内部类,局部内部类,匿名内部类,静态内部类。

1、成员内部类:

1
2
外部类.this.成员变量
外部类.this.成员方法

静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员变量或者方法,这点很好理解,因为在没有外部类的对象的情况下,可以创建静态内部类的对象,如果允许访问外部类的非static成员就会产生矛盾,因为外部类的非static成员必须依附于具体的对象。

  • 上一篇: java基础368
  • 下一篇: java基础暴力反射
  • 版权声明


    相关文章:

  • java基础3682025-04-13 14:26:04
  • java基础代码例子2025-04-13 14:26:04
  • java基础实战2025-04-13 14:26:04
  • 学java基础培训2025-04-13 14:26:04
  • java基础看谁事情2025-04-13 14:26:04
  • java基础暴力反射2025-04-13 14:26:04
  • java基础 题目2025-04-13 14:26:04
  • 夯实java基础2025-04-13 14:26:04
  • java基础没记住2025-04-13 14:26:04
  • java开发基础题目2025-04-13 14:26:04