static

201521123020 《Java程序设计》第3周学习总结

≡放荡痞女 提交于 2020-01-30 06:02:55
本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识组织起来。请使用纸笔或者下面的工具画出本周学习到的知识点。截图或者拍照上传。 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; public static void main(String[] args) { geti(); Test1getj(); } public static void geti() { System.out.println(i); } public static void getj() { System.out.println(j); } } 以上代码可否编译通过?哪里会出错?为什么?尝试改正? 如果创建3个Test1对象,有内存中有几个i,几个j?请分析原因? 答:编译无法通过。System.out.println(i)会出错,因为它不是一个静态的对象。public static void geti()改为public void geti() 内存中有三个i,一个j,因为静态对象每个类只有一个储存空间. 2.构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数

Java static members in a subclass accessed via a generic parent

喜夏-厌秋 提交于 2020-01-30 04:22:11
问题 This seems like a newbish question, but the last time I worked with Java, the language didn't have generics. I have a class hierarchy (names changed to be as generalized as possible): public abstract class AbstractBase { .... } public class ConcreateSubA extends AbstractBase { .... } public class ConcreateSubB extends AbstractBase { .... } ... public class ConcreateSubZZ9PluralZAlpha extends AbstractBase { .... } ... I'm trying to clean up some legacy code, and there's one place where a ton

十、Java中的枚举类

给你一囗甜甜゛ 提交于 2020-01-30 03:52:00
1.枚举类的定义 在编程开发中,我们经常遇到诸如此类的问题——一组颜色有红、橙、黄、绿、青、蓝、紫,而且这些颜色都是常量固定不变,因此我们需要专门来定义一个类用来存放这些常量以便于使用。 /** * 一个专门用来容纳颜色的类 */ public class Color { //创建颜色,这些颜色可以用类调用,且地址不可改变 public static final Color GREEN = new Color("绿色"); public static final Color RED = new Color("红色"); public static final Color Yellow = new Color("黄色"); public static final Color BLUE = new Color("蓝色"); public static final Color WHITE = new Color("白色"); public static final Color BLACK = new Color("黑色"); private final String name;//颜色名 private final int index;//颜色索引 private static int count = 0;//计数器 //私有化的构造方法:只能在类内部实例化对象 private

Refer to class inside of static method without using its name

我的未来我决定 提交于 2020-01-30 02:41:53
问题 How can I refer to a class from a static method without using the class name itself in JavaScript (similar to PHP's self and self::method_name )? For example, in the class below, how can I refer to the method foo and the method bar inside of the foobar method without the use of FooBar.methodName ? class FooBar { static foo() { return 'foo'; } static bar() { return 'bar'; } static foobar() { return FooBar.foo() + FooBar.bar(); // self::foo() + self::bar() would have been more desirable. } }

Java多线程同步之ThreadLocal与Synchromized

半世苍凉 提交于 2020-01-29 23:05:28
前言: ThreadLocal和Synchronized都是为了解决多线程中相同变量的访问冲突问题,只是二者处理问题的思路和角度不同。 ThreadLocal是Java类,是通过每个线程单独一份存储空间,牺牲空间来弥补时间来解决多线程访问冲突,ThreadLocal具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问到想要的值。 Synchronized是Java保留关键字,通过线程等待,牺牲时间来解决访问冲突。依靠JVM的锁机制来实现临界区的函数或者变量的访问中的原子性。在同步机制中,通过对象的锁机制保证同一时间只有一个线程的访问变量,此时被用作锁机制的变量被多个线程共享。 代码 Synchronized public class SqlConnectionUtil { private static SqlPool instance=null; public static synchronized SqlConnection getInstance(){ if(instance==null) instance=new SqlPool(); return instance.getSqlConnection(); } ThreadLocal public class SqlConnectionUtil { private static ThreadLocal

让自己习惯C++

烂漫一生 提交于 2020-01-29 11:12:00
条款一:视C++为一个语言联邦 今天的C++是个多重泛型编程语言(multiparadigm programming language),一个同时支持过程(procedural)、面向对象(object-oriented),函数形式(functional),泛型形式(generic),元编程形式(metaprogramming)的语言。 C++主要的次语言: C。 Object-Oriented C++。class、封装、继承、多态等。 Template C++。C++泛型编程部分。 STL。容器、迭代器、算法以及函数对象 条款二:尽量以 const、enum、inline 替换 #define #define 是在预处理阶段处理的,记号从未被编译器看见,所使用的名称也可能从未进入记号表(symbol table)。 解决方法是以一个常量替换宏。 有一个特殊情况是 class 专属常量。将常量的作用域限制在类内,必须让它成为 class 的 一个成员;为了确保此常量至多只有一份实体,必须让它成为 static 成员。 12345678910 class GamePlayer {private: static const int NumTurns = 5; // 常量声明式 int scores[NumTurns]; // 使用该常量}; 通常 C++

C++面试常见题之美

孤者浪人 提交于 2020-01-29 11:10:42
1.什么是虚函数?什么是纯虚函数? 虚函数是允许被其子类重新定义的成员函数。 虚函数的声明:virtual returntype func(parameter);引入虚函数的目的是为了动态绑定; 纯虚函数声明:virtual returntype func(parameter)=0;引入纯虚函数是为了派生接口。(使派生类仅仅只是继承函数的接口) 2.基类为什么需要虚析构函数? 防止内存泄漏。想去借助父类指针去销毁子类对象的时候,不能去销毁子类对象。假如没有虚析构函数,释放一个由基类指针指向的派生类对象时,不会触发动态绑定,则只会调用基类的析构函数,不会调用派生类的。派生类中申请的空间则得不到释放导致内存泄漏。 3.当i是一个整数的时候i++和++i那个更快?它们的区别是什么? 几乎一样。i++返回的是i的值,++i返回的是i+1的值,即++i是一个确定的值,是一个可以修改的左值。 4.vector的reserve和capacity的区别? reserve()用于让容器预留空间,避免再次分配内存;capacity()返回在重新进行分配以前所能容纳的元素数量。 5.如何初始化const和static数据成员? 通常在类外申明static成员,但是static const的整型(bool,char,int,long)可以在类中声明且初始化,static

架构设计之-单例模式

ε祈祈猫儿з 提交于 2020-01-29 11:06:22
先来说说为什么要使用单例模式进行架构方面的设计,那就是单例模式的优点: 1.单例模式只有一个实例,节省了内存资源,对于一些需要频繁创建和销毁的对象,使用单例模式可以提高系统性能 2.单例模式可以设置系统的全局访问点,优化和共享数据。常见的系统架构设计中会经常使用单例模式就行设计,用来创建一个实例来就行读取相应的一些配置文件和公共类 代码实现: 1、饿汉式 (可用) public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return INSTANCE; } } 这是比较常见的写法,在类加载的时候就完成了实例化,避免了多线程的同步问题。当然缺点也是有的,因为类加载时就实例化了,没有达到Lazy Loading (懒加载) 的效果,如果该实例没被使用,内存就浪费了。 2、普通的懒汉式 (线程不安全,不可用) public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance

What happens when non-static function declaration follows static function declaration?

我是研究僧i 提交于 2020-01-29 10:14:22
问题 The following compiles: static int foo() { return 1; } int foo(); But, will it always compile? Is the behavior in this case well defined? And what does it means when a non-static prototype follows a static declaration? 回答1: Yes it will compile and behavior is well defined. Since foo is declared static earlier than int foo(); 1 , foo has internal linkage. C11: 6.2.2 Linkages of identifiers (p4): For an identifier declared with the storage-class specifier extern in a scope in which a prior

Good case for Singletons?

老子叫甜甜 提交于 2020-01-29 07:25:06
问题 I have an application that has several classes used for storing application-wide settings (locations of resources, user settings, and such). Right now these classes are just full of static fields and methods, but I never instantiate them. Someone suggested I make them Singletons, What's the case for/against? 回答1: Effective Java says: Singletons typically represent some system component that is intrinsically unique, such as a video display or file system. So if your component warrants single