static 关键字
static静态代码区域、static修饰的成员变量: 他们有如下特点
1、static是一个修饰符,用于修饰成员,static修饰的成员被所有的对象所共享
2、会随着类的加载而加载,而且只加载一次,static优先于对象存在。
3、static修饰的成员变量有2种调用方式:类名调用:类名.变量名、对象调用
4、static修饰的数据是共享数据,对象存储的数据是特有数据
成员变量与静态变量的区别:
成员变量也叫实例变量
静态变量也叫类变量
静态变量使用的注意事项:
静态方法只能访问静态成员(成员方法,成员变量){静态方法不能使用this、super关键字}只能通过对象调用非静态方法
非静态方法可以访问静态方法,也可以访问非静态方法
构造函数与一般函数的区别:
构造函数:函数名与类名一致;分为无参构造函数、有参构造函数
初始化对象时被调用 eg:Person p = new Person();此时就会调用构造函数,没有构造函数时,会调用 默认构造函数
this关键字
this关键字使用的场景:就是在局部变量与成员变量重名时
因为局部变量与成员变量重名时(可以用this来区分)
this代表对象并且是代表当前对象
eg:
public class thisDemo {
public static void main(String args[]){
Person p=new Person("nini");
}
}
class Person{
private String name;
private int age;
Person(String name){
this.name=name;
}
public void print(){
System.out.println("name:"+name);
}
}
4、强制类型转换关键
short s1 =s1+1 用什么错? short s1+=1,有什么错?
答:第一种方案有错,s1+1是int 类型的,需要强制转换
第二种方案可以正常编译,可以隐式转换
5、继承
类的修饰符的权限大小排列:
public〉〉〉〉abstract〉〉〉private
权限只能扩大不能缩小
Java仅支持单继承,不支持多继承(即:一个子类只有一个父类),但Java也支持多层继承、多重继承(B继承A, C继承B)
当子父类中出现成员函数一模一样的情况,会运行子类的函数,这种现象称为覆盖操作(即重写)。
函数的一个特性:
1、重载。同一个类中。overload
2、重写(覆盖)子父类中. override
重写注意事项:
1、子类方法覆盖父类的方法时,子类的权限必须大于等于父类的权限
2、静态方法只能覆盖静态方法
子父类的构造函数:
子类在实例化过程,子类的所有构造函数默认都会访问父类的无参构造函数
子类在构建对象时,发现访问子类构造函数,父类的无参构造函数也运行。
6、tcp协议和udp协议的差别TCP UDP是否连接 面向连接 面向非连接传输可靠性 可靠 不可靠应用场合 传输大量数据 少量数据速度 慢 快
逻辑运算
A......B..................A And B....A Or B........A Xor B
0......0.......................0..............0................0
1......0.......................0..............1................1
0......1.......................0..............1................1
1......1.......................1..............1................0
Java单例模式
package SingleDemo;
/*类的唯一性
* 创建本类对象
* 私有化构造方法
* 有一个公开方法,方法类型是指向该类的
* */
///不能被另一个类创建类对象引用,只能通过静态属性的类名调用
public class SingleTest {
Single s1=Single.getInstance();
Single2 s2=Single2.getInstance2();
}
/*单例模式
* ————饿汉式 开发用
* */
class Single{
private static Single s =new Single();
private Single(){}
public static Single getInstance(){
return s;
}
}
/*单例模式
* __————懒汉式 面试用,线程存在安全隐患
* */
class Single2{
private static Single2 s =null;
private Single2(){}
public static Single2 getInstance2(){
if(s==null){
s=new Single2();
}
return s;
}
}
/**
* @author Administrator
* 单例模式的懒汉模式(延迟加载单例模式)
*
*/
class Single2{
private static Single2 s =null;
private Single2(){}
/**
* @return
*/
public static Single2 getInstance2(){
if(s==null){
synchronized (Single2.class) {
if(s==null){
s=new Single2();
}
}
}
return s;
}
}
IO流基础知识:
package com.bishi.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class IODemo {
public static void main(String args[]) throws IOException{
xie();///复杂写法
/*将键盘(控制台)输入的内容,输出到控制台中*/
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
/*将文件的内容读取到控制台中*/
BufferedReader bufr2=new BufferedReader(new InputStreamReader(new FileInputStream("D://xuan.txt")));
BufferedWriter bufw2=new BufferedWriter(new OutputStreamWriter(System.out));
/*将键盘(控制台)输入,保存到文件中*/
BufferedReader bufr3=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw3=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E://chan.txt")));
/*将A文件中的内容,保存到B文件中*/
BufferedReader bufr4=new BufferedReader(new InputStreamReader(new FileInputStream("D://xuan.txt")));
BufferedWriter bufw4=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E://chan.txt")));
String line=null;
while((line=bufr.readLine())!=null){
if(line.equals("over")){
break;
}
bufw.write(line);
bufw.newLine();///换行
bufw.flush();//刷新
}
}
private static void xie() throws IOException {
InputStream in=System.in;///控制台输入的字节流
///将控制台输入的字节流转为字符流
InputStreamReader isr=new InputStreamReader(in);
///缓存区 ,缓冲区放的是字符流 ,不是字节流
BufferedReader bufr=new BufferedReader(isr);
String line=null;
OutputStream out =System.out;///控制台输出
///将字符转为字节流
OutputStreamWriter osw=new OutputStreamWriter(out);
///输出缓存区 缓冲区放的是字符流 ,不是字节流
BufferedWriter bufw=new BufferedWriter(osw);
while((line=bufr.readLine())!=null){
if(line.equals("over")){
break;
}
bufw.write(line);
bufw.newLine();///换行
bufw.flush();//刷新
}
}
}
线程
同步好处(synchronized):解决线程安全问题
同步弊端(synchronized):相对降低了效率,因为同步外的线程,都会判断同步锁
字符串反转:
public static void main(String[] args){
StringBuffer sb=new StringBuffer();
String str="abxhdgsb";
sb.append(str);
System.out.println("===原字符==="+str);
System.out.println("===字符反转==="+sb.reverse());
}
把时间格式转为毫秒
public static void main(String[] args) throws ParseException {
String str = "201104141302";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmm");
long millionSeconds = sdf.parse(str).getTime();//毫秒
System.out.println(millionSeconds);
}
}
防止中文乱码
String desc = "djkcds1234!~,你好我们asdc很好";
String d = new String(desc.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("desc: " + d);
处理出现中文乱码的拦截器
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
JavaSE基础知识笔记
JavaSE基础知识笔记
本文档是对JavaSE 基础知识做了简单的总结与归纳,是对标识符,关键字,常量与变量,数据类型等做了简单的理解。
JavaSE基础知识
需要下载xmind软件辅助查看,涵盖Java阶段基础知识,可做详细笔记,比word文档方便
javaSE前面部分的基础笔记,实话与刚学JAVA的朋友,内容里面已经包括了类的一些支持点,比如封装,继承,多态等。
可以当工具书用,欢迎下载。
内容为本人整理学习javase时的笔记,java基础知识后续上传,内部含有两个文件,内容相同,文件格式不同,方便大家参考使用
javaSE1-7章完整学习笔记,为学好java时必须掌握的java基础知识!
可以用于面试过一下基础知识点,知识点包含:变量、数据类型、运算符、控制语句、面向对象编程、异常机制、集合(容器)、IO流、多线程、网络编程、反射
传智播客JavaSE基础毕向东老师全程笔记 有详细系统的知识点讲解 对java自学者非常有帮助
"韩顺平-javase-从入门到精通学习笔记" 本资源摘要信息中,我们将详细介绍 Java 语言的基础知识、Java 开发工具、Java 语言的特点、Java 开发步骤、Java 虚拟机、Java 编译器、Java 字节码文件、Java 解释执行器、...
适合初学者的笔记 从java语言的JDK到面向对象中的异常 期间的知识点进行一个汇总,简单概括了各个知识点的基础语法与原理,利用思维导图的写法,更容易理清每个知识点的思路,适合在知识点较为模糊的时候看一看,巩固...
Java中的终点知识,是学习Java的好帮手,希望可以对大家有所帮助 有关Java基础的比如:注释,命名规范,变量的作用域,进制之间的转换 运算,类的相关知识
对于初学java的同学,我整理了一份笔记,来帮助大家一起学习java
职业开发者:需要回顾或巩固Java基础知识的专业人士。 使用场景及目标 学习基础:为初学者提供一个全面的Java入门指南。 课程辅助:作为大学课程或在线教程的补充材料。 技能提升:帮助有经验的开发者回顾和加强Java...
本资源以思维导图的方式,罗列了javase基础及高级部分的知识点,剔除了一些java常识的知识点,只保留了易错、易混点,并提供了部分使用方法。适合初学者作为复习使用。
Java核心基础总结,同步博客中的pdf文档
适应与java的初学者与零基础的学习,系统的介绍了javaSE的内容
Java语法基础 Java开发环境搭建 Java是一门编程语言,是用来编写软件的。...JavaSE是java分类中的标准版,是刚接触java要学习的基础知识。 JavaEE是java分类中的企业版,是java中的高级,涉及到的知识广泛。