关于java部分知识点的总结(一)
2016-07-19 15:07
302 查看
之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 Cannot use this in a static context 在一个static代码块或者是static方法中,不能使用this和supper,因为static在jvm加载时就会初始化,而此时this和super可能并不存在。构造器也是隐式的static方法(关于以前记录的言论,但我现在google并没有找不出相应的资料) 延伸:关于static关键字: static修饰成员变量:静态变量,直接通过类名访问 static修饰成员方法:静态方法,直接通过类名访问 static修饰代码块:静态代码块,当JVM加载类时,就会执行该代码 静态方法:①可直接通过类名访问②静态方法中不能使用this和super关键字③不能直接访问所属类的实例变量和实例方法④可直接访问类的静态变量和静态方法⑥静态方法必须被实现,简单的说就是不能和abstract抽象关键字并存,会报语法错误,如下:
/** * Created by root on 16-7-19. */ public abstract class Constructor { public Constructor(){ System.out.println("static"); } public static void main(String[] args) { } public abstract static void test(); }
成员变量(全局变量)和局部变量的区别:①作用域不同②初始值不同<1>JAVA会给成员变量赋初始值<2>Java不会给局部变量赋初始值
关于java的访问修饰符大小:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨ protect ∨ ∨ ∨ × default ∨ ∨ × × private ∨ × × ×
查看端口占用情况以及杀死 相关端口进程
netstat -ano或者 netstat -ano | findstr 端口
taskkill /pid 端口
websocket中 jsonObject.put(key,value),若不使用else,则isSelf将永远存在,因为第一个if已经改变了
如下:
for (ChatServer openSession : set) { sysLogger.info(openSession); if(openSession.session.equals(session)){ flag = true; System.out.println("推送到消息发送者本身"); // 添加本条消息是否为当前会话本身发的标志 jsonObject.put("isSelf", true); }else{ jsonObject.put("isSelf", false); } // 发送JSON格式的消息 // openSession.getAsyncRemote().sendText(jsonObject.toString()); openSession.session.getBasicRemote().sendText(jsonObject.toString()); sysLogger.info("Opensession:"+openSession); }
request.getSchema()可以返回当前页面使用的协议,http 或是 https;
request.getServerName()可以返回当前页面所在的服
d0a1
务器的名字;
request.getServerPort()可以返回当前页面所在的服务器使用的端口,就是80;
request.getContextPath()可以返回当前页面所在的应用的名字;
一共有三种设置方式url-pattern /文件夹名/* / *.do
servlet匹配 1.精确匹配 2.路径匹配 3.扩展名匹配 4.若前两者都不能匹配,则调用默认的servlet处理
URL 配置格式 三种:
1、完全路径匹配 (以/开始 ) 例如:/hello /init
2、目录匹配 (以/开始) 例如:/* /abc/*
/ 代表网站根目录
3、扩展名匹配 (不能以/开始) 例如:.do .action
典型错误 /*.do
在浏览器中 访问的优先级顺序为:
优先级:完全匹配>目录匹配 > 扩展名匹配
toLowerCase()字符串转换为小写
toUpperCase()字符串转换为大写
ServletContext,是一个全局的储存信息的空间,一个web应用程序只有唯一的一个,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息
newInstance: 弱类型。低效率。只能调用无参构造。
new: 强类型。相对高效。能调用任何public构造。
newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。
里面就是通过这个类的默认构造函数构建了一个对象,如果没有默认构造函数就抛出InstantiationException, 如果没有访问默认构造函数的权限就抛出IllegalAccessException
1.java中所有的关键字都是小写的,
null,ture和false是java语言中的保留字;
而sizeof,在java中不存在sizeof运算符;
implements和instanceof是java预言中的关键字。
2.doget/dopost是在HttpServlet中实现的 不是GenericServlet,service 判断并决定是调用doget还是dopost. service()是在Servlet接口中定义的
1、实现Servlet接口。
2、继承GenericServlet。
3、继承HttpServlet。
3.AWT比较老,是各操作系统中图形功能的交集,依靠本地方法实现功能。注意:AWT在不同的操作系统中可能显示相同的风格,而swing由于比较先进,自己集成的一套,所以在不同的操作系统中一定显示相同的风格!
对于外部类来说 内部类相当于它的一个属性 内部类中的private也相当于它本身的private属性 所以根据类内可见原则 内部类private是可以被外部类访问的 ,内部类主要作用,使用组合可实现多继承,但个人理解没有使用接口实现多继承好,可以方便的访问外部类的属性方法,即使是private,可以使用组合实现不错的封装作用。
相关文章推荐
- Quartz Demo
- JAVA DVD管理系统
- Java中Synchronized的用法
- Spring中jdbcTemplate的用法实例(一)
- [JAVA]随机省市
- JAVA 基础、底层、核心学习资料
- Java IO(二): InputStream
- Java 解析表达式
- 文本多于最大字数后用省略号来代替的的文字
- java 监听器实现原理
- spring boot 中使用定时器
- Spring中Quartz的配置
- Spring 注解的方式进行事务管理
- Java基础学习第二天
- Spring集成quartz任务调度框架
- Java 反射
- java文件读写操作大全
- Eclipse常用设置
- 用mvn test运行test case时,报“java.lang.OutOfMemoryError: PermGen space”
- Java动态代理(二)CGLIB动态代理应用