- 博客(1)
- 资源 (4)
- 收藏
- 关注
原创 面向对象JavaScript开发实战
面向对象JavaScript开发实战 一. JavaScript高级部分 1.1 函数 1.1.1 函数的内存分布 1.1.2 函数的声明方式 1.1.3 函数的调用方式 1.1.4 callback回调函数 1.2 对象 1.2.1 对象的内存分布 1.2.2 对象的创建 1.3 事件 1.3.1 JavaScript单线程 1.3.2 JavaScript事件机制
2014-06-15 21:01:09 1043
VC对话框隐藏运行的几种方法
有很多应用程序要求一起动就隐藏起来,这些程序多作为后台程序运行,希望不影响其他窗口,往往只在托盘区显示一个图标。这些程序通常都是对话框程序,而对话框在初始化的过程上与SDI、MDI的初始化是不同的,对话框只需要DoModule或者是CreateDialog等等对话框函数调用一次便可,SDI、MDI则要好几步才行。这样看来,对话框在使用方法上面是隐藏了不少细节的,其中就没有SDI、MDI所要求的ShowWindow(nCmdShow)这一步。因此对话框要想一运行就隐藏,并不是很直接的。有一些方法可以做到这一点,下面我们就来看看几种方案。
2011-03-24
Java语言规范 Java Language Specification
Java语言规范:
This specification is organized as follows:
Chapter 2 describes grammars and the notation used to present the lexical and
syntactic grammars for the language.
Chapter 3 describes the lexical structure of the Java programming language,
which is based on C and C++. The language is written in the Unicode character
set. It supports the writing of Unicode characters on systems that support only
ASCII.
Chapter 4 describes types, values, and variables. Types are subdivided into
primitive types and reference types.
The primitive types are defined to be the same on all machines and in all
implementations, and are various sizes of two’s-complement integers, single- and
double-precision IEEE 754 standard floating-point numbers, a boolean type, and
a Unicode character char type. Values of the primitive types do not share state.
Reference types are the class types, the interface types, and the array types.
The reference types are implemented by dynamically created objects that are
either instances of classes or arrays. Many references to each object can exist. All
objects (including arrays) support the methods of the class Object, which is the
(single) root of the class hierarchy. A predefined String class supports Unicode
character strings. Classes exist for wrapping primitive values inside of objects. In
many cases, wrapping and unwrapping is performed automatically by the compiler
(in which case, wrapping is called boxing, and unwrapping is called unboxing).
Class and interface declarations may be generic, that is, they may be
parameterized by other reference types. Such declarations may then be invoked
with specific type arguments.
Variables are typed storage locations. A variable of a primitive type holds a
value of that exact primitive type. A variable of a class type can hold a null reference
or a reference to an object whose type is that class type or any subclass of
that class type. A variable of an interface type can hold a null reference or a reference
to an instance of any class that implements the interface. A variable of an
array type can hold a null reference or a reference to an array. A variable of class
type Object can hold a null reference or a reference to any object, whether class
instance or array.
Chapter 5 describes conversions and numeric promotions. Conversions
change the compile-time type and, sometimes, the value of an expression. These
conversions include the boxing and unboxing conversions between primitive types
and reference types. Numeric promotions are used to convert the operands of a
numeric operator to a common type where an operation can be performed. There
are no loopholes in the language; casts on reference types are checked at run time
to ensure type safety.
Chapter 6 describes declarations and names, and how to determine what
names mean (denote). The language does not require types or their members to be
INTRODUCTION Introduction 1
3
declared before they are used. Declaration order is significant only for local variables,
local classes, and the order of initializers of fields in a class or interface.
The Java programming language provides control over the scope of names
and supports limitations on external access to members of packages, classes, and
interfaces. This helps in writing large programs by distinguishing the implementation
of a type from its users and those who extend it. Recommended naming conventions
that make for more readable programs are described here.
Chapter 7 describes the structure of a program, which is organized into packages
similar to the modules of Modula. The members of a package are classes,
interfaces, and subpackages. Packages are divided into compilation units. Compilation
units contain type declarations and can import types from other packages to
give them short names. Packages have names in a hierarchical name space, and
the Internet domain name system can usually be used to form unique package
names.
Chapter 8 describes classes. The members of classes are classes, interfaces,
fields (variables) and methods. Class variables exist once per class. Class methods
operate without reference to a specific object. Instance variables are dynamically
created in objects that are instances of classes. Instance methods are invoked on
instances of classes; such instances become the current object this during their
execution, supporting the object-oriented programming style.
Classes support single implementation inheritance, in which the implementation
of each class is derived from that of a single superclass, and ultimately from
the class Object. Variables of a class type can reference an instance of that class
or of any subclass of that class, allowing new types to be used with existing methods,
polymorphically.
Classes support concurrent programming with synchronized methods.
Methods declare the checked exceptions that can arise from their execution, which
allows compile-time checking to ensure that exceptional conditions are handled.
Objects can declare a finalize method that will be invoked before the objects
are discarded by the garbage collector, allowing the objects to clean up their state.
For simplicity, the language has neither declaration “headers” separate from
the implementation of a class nor separate type and class hierarchies.
A special form of classes, enums, support the definition of small sets of values
and their manipulation in a type safe manner. Unlike enumerations in other languages,
enums are objects and may have their own methods.
Chapter 9 describes interface types, which declare a set of abstract methods,
member types, and constants. Classes that are otherwise unrelated can implement
the same interface type. A variable of an interface type can contain a reference to
any object that implements the interface. Multiple interface inheritance is supported.
1 Introduction INTRODUCTION
4
Annotation types are specialized interfaces used to annotate declarations.
Such annotations are not permitted to affect the semantics of programs in the Java
programming language in any way. However, they provide useful input to various
tools.
Chapter 10 describes arrays. Array accesses include bounds checking. Arrays
are dynamically created objects and may be assigned to variables of type Object.
The language supports arrays of arrays, rather than multidimensional arrays.
Chapter 11 describes exceptions, which are nonresuming and fully integrated
with the language semantics and concurrency mechanisms. There are three kinds
of exceptions: checked exceptions, run-time exceptions, and errors. The compiler
ensures that checked exceptions are properly handled by requiring that a method
or constructor can result in a checked exception only if the method or constructor
declares it. This provides compile-time checking that exception handlers exist,
and aids programming in the large. Most user-defined exceptions should be
checked exceptions. Invalid operations in the program detected by the Java virtual
machine result in run-time exceptions, such as NullPointerException. Errors
result from failures detected by the virtual machine, such as OutOfMemoryError.
Most simple programs do not try to handle errors.
Chapter 12 describes activities that occur during execution of a program. A
program is normally stored as binary files representing compiled classes and interfaces.
These binary files can be loaded into a Java virtual machine, linked to other
classes and interfaces, and initialized.
After initialization, class methods and class variables may be used. Some
classes may be instantiated to create new objects of the class type. Objects that are
class instances also contain an instance of each superclass of the class, and object
creation involves recursive creation of these superclass instances.
When an object is no longer referenced, it may be reclaimed by the garbage
collector. If an object declares a finalizer, the finalizer is executed before the
object is reclaimed to give the object a last chance to clean up resources that
would not otherwise be released. When a class is no longer needed, it may be
unloaded.
Chapter 13 describes binary compatibility, specifying the impact of changes
to types on other types that use the changed types but have not been recompiled.
These considerations are of interest to developers of types that are to be widely
distributed, in a continuing series of versions, often through the Internet. Good
program development environments automatically recompile dependent code
whenever a type is changed, so most programmers need not be concerned about
these details.
Chapter 14 describes blocks and statements, which are based on C and C++.
The language has no goto statement, but includes labeled break and continue
statements. Unlike C, the Java programming language requires boolean (or
INTRODUCTION Example Programs 1.1
5
Boolean) expressions in control-flow statements, and does not convert types to
boolean implicitly (except through unboxing), in the hope of catching more
errors at compile time. A synchronized statement provides basic object-level
monitor locking. A try statement can include catch and finally clauses to protect
against non-local control transfers.
Chapter 15 describes expressions. This document fully specifies the (apparent)
order of evaluation of expressions, for increased determinism and portability.
Overloaded methods and constructors are resolved at compile time by picking the
most specific method or constructor from those which are applicable.
Chapter 16 describes the precise way in which the language ensures that local
variables are definitely set before use. While all other variables are automatically
initialized to a default value, the Java programming language does not automatically
initialize local variables in order to avoid masking programming errors.
Chapter 17 describes the semantics of threads and locks, which are based on
the monitor-based concurrency originally introduced with the Mesa programming
language. The Java programming language specifies a memory model for sharedmemory
multiprocessors that supports high-performance implementations.
Chapter 18 presents a syntactic grammar for the language.
The book concludes with an index, credits for quotations used in the book,
and a colophon describing how the book was created.
2010-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人