关于java部分知识点的总结(一)

www.allocmem.com · · 4440 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。
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()可以返回当前页面所在的服务器的名字; request.getServerPort()可以返回当前页面所在的服务器使用的端口,就是80; request.getContextPath()可以返回当前页面所在的应用的名字;

一共有三种设置方式url-pattern /文件夹名/* / .do servlet匹配 1.精确匹配 2.路径匹配 3.扩展名匹配 4.若前两者都不能匹配,则调用默认的servlet处理 URL 配置格式 三种: 1、完全路径匹配 (以/开始 ) 例如:/hello /init 2、目录匹配 (以/开始) 例如:/ /abc/* / 代表网站根目录

3、扩展名匹配 (不能以/开始) 例如:*.do .action 典型错误 /.do 在浏览器中 访问的优先级顺序为: 优先级:完全匹配>目录匹配 > 扩展名匹配 url配置匹配示例

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,可以使用组合实现不错的封装作用。

本文来自:www.allocmem.com

感谢作者:www.allocmem.com

查看原文:关于java部分知识点的总结(一)

4440 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传