d****p 发帖数: 685 | 1 I recently got confused about one thing.
Previously I have class design as:
class IFoo { ... } // abstract class
class Foo1 : public IFoo { ... }
class Foo2 : public IFoo { ... }
Recently all the code was modified by a colleague as:
class IFoo { ... }
class Foo1 { Impl *pImpl ... }
class Foo1::Impl { ... }
In short, the implementation was moved from Foo to Foo::impl, which
is an internal class.
What's the benefit of doing so? To me this is not nice since Foo is
suppose to be implementat |
|
d****p 发帖数: 685 | 2 Thanks - but that's why I am confused.
If its purpose is to decouple any units include-ing Foo.h and Foo's
actual implementation, the situation already justifies promoting Foo into
a higher level as abstract class such as IFoo.
So basically it is
abstract(IFoo) - semi abstract (Foo) - solid (Foo::Impl)
vs
abstract (IFoo) - abstract (IFoo) - solid (Foo).
Maybe I am missing sth but I deem the second concept is cleaner.
Hmm seems the 1st approach does have merit - its instan |
|
l*******o 发帖数: 250 | 3 not every time, but happened several times at least. Only got issues with
this site.
C:\dev\vert.x>gvim bin\vertx.bat
C:\dev\vert.x>vertx run Server.java
"C:\Java\jdk1.7.0_45/bin/java.exe" -Djava.util.logging.config.file="c:\
dev\vert.x\bin\..\conf\logging.properties" -Dvertx.home="c:\dev\
vert.x\bin\.." -Dvertx.clusterManagerFactory="org.vertx.java.spi.cluster.
impl.hazelcast.HazelcastClusterManagerFactory" -classpath ";c:\dev\
vert.x\bin\..\conf;c:\dev\vert.x\bin\..\lib\*" org.vertx.java.... 阅读全帖 |
|
o**2 发帖数: 168 | 4 关于immutable objects
首先我要指出的是:immutable objects即不是FMP的goal,也不是FMP的feature,它们
和FMP没有关系。
多线程编程需要immutable objects,这样可以减轻出错的机会。因为你编这些object
的时候,不需要考虑thread safe了。
FMP中的每一个active object都是一个独立的处理中心,FMP保证每一个active object
的impl object及其用到的所有objects,都将运行在同一个单线程环境中。于是,
objects是不是immutable已经不是一个concern了。
FMP的message里的objects是要暴露在不同的线程里的,至少在一个caller object和一
个impl object里,这样就有两个thread了。
FMP的应对是允许用户选择他们觉得合适的messenger implementation。FMP是一个spec
,不同的software vendor可以提供不同的messenger impl。因为messenger impl的成
本很低,比如... 阅读全帖 |
|
l*********a 发帖数: 42 | 5 import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.eval.DataModelBuilder;
import org.apache.mahout.cf.taste.eval.RecommenderBuilder;
import org.apache.mahout.cf.taste.eval.RecommenderEvaluator;
import org.apache.mahout.cf.taste.impl.common.FastByIDMap;
import org.apache.mahout.cf.taste.impl.eval.
AverageAbsoluteDifferenceRecommenderEvaluator;
import org.apache.mahout.cf.taste.impl.model.GenericBooleanPrefDataModel;
import org.apache.mahout.cf.taste.impl.mo... 阅读全帖 |
|
f*******t 发帖数: 7549 | 6 如果不往FP上靠,基本上只有一种写法。
type If interface {
func Foo() (Result, error)
}
type Impl struct {
}
func (i *Impl) Foo() (Result, error) {
...
}
我刚上手时概念混乱了好久。读别人的go代码,传object参数一般写指针,但如果是接
口,就不带那个*。
例子:
func Bar(i If) {
res, err := i.Foo()
...
}
i := Impl{}
Bar(&i)
后来我才理解,由于duck typing的存在,真正继承If的不是Impl,而是*Impl。实际应
用中会用这种写法避免object的复制(go是pass by value)。 |
|
c*****t 发帖数: 1879 | 7 这个问题并不是在问 compiler 的问题啊。问的是 design 类的问题。
也就是说,有 N 个 interface / impl,因为某个原因,其中的 impl 需要
call 某个 class (generated)的一系列 function (lexer functions),
问的是,如何简单有效的将这些 impl 和该 class 联系起来,尽量减少
impl 得写的部分。 |
|
o**2 发帖数: 168 | 8 费了老大的劲才把FMP的介绍塞进了2000个字符里。大家帮忙挑挑毛病。
Fast Messenger Programming (FMP) is a new object-based model for general
concurrent programming with NO threads.
FMP elements:
• Active objects – a type of virtual objects that represent business
functions
• Messenger objects – act as virtual machines to host and realize
active objects
• Text-based names – for FMP entities
An active object is defined as an object with:
• A name
• A list of services – each has a name and can be vie... 阅读全帖 |
|
o**2 发帖数: 168 | 9 Spring @Async
这个可以从方便性,可靠性,和thread safe等角度来比较。(我没有实际用过Spring
Async,所依靠的都是临时search出来的reading。如有错误,欢迎指正。)
Async比Java标准的ExectorService强多了,这里就不再提ExectorService了,只比较
Async和FMP。事先说一下,FMP是完全没有静态type checking的,这样做的原因和好处
就不展开了,先认个输。
方便性
1,Async method只能返回void或Future,而FMP的impl object对return value没有任
何限制。这对caller来说,是一样的,但对那个method impl来说,是不同的。Spring
里同一个object的其它method如果要调用这个async method的话,就不能用sync的方式
了。而FMP的impl object完全是一个pure object,因为对外的是active object而不是
这个impl object,于是对外async,对内sync;当然对内也可以是async的,但要... 阅读全帖 |
|
p*****2 发帖数: 21240 | 10 真是出师不利呀。
vertx run server.js
Failed in deploying verticle
javax.script.ScriptException: Error: Cannot find module vertx in at
line number 125 at column number 6
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(
NashornScriptEngine.java:586)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(
NashornScriptEngine.java:570)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(
NashornScriptEngine.java:525)
at jdk.nashorn.api.scripting.Nashor... 阅读全帖 |
|
g******o 发帖数: 208 | 11
unspecified (impl. dependent). Yes.
Yes.
,
Again, it is unspecified. If they point to the same address, the compiler
must have done some optimization.
; System.out.println(s1+s2);
Again, it is unspecified.
Most your questions are unspecified in Java and vary from impl to impl,
except that string literals of the
same value must points to the same instance. |
|
z****n 发帖数: 1933 | 12 定义一个接口
public interface DataAccessDao
实现
public class DataAccessDaoImpl implements DataAccessDao
单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/DataAccessTest.xml")
public class DataAccessTest
{
@Autowired
private DataAccessDaoImpl dataAccessDao;
spring配置
然后出错, org.springframework.beans.factory.NoSuchBeanDefinitionException:
No matching bean o... 阅读全帖 |
|
o**2 发帖数: 168 | 13 这个FmpPredictSvc是原先PredictSvc的替换。因为在FMP版中,Predictor变成了
active object,于是使用的方法也必须调整。
我在这里解释一下这个"predictor",因为在第一个for loop中,我们把所有的input
strings都用messenger.callService() method 发给了这个"predictor",那为什么
它能并发呢?
这是因为"predictor"在Main class里被创建成了一个cluster,就是一个active
object名下有多个active implementation objects,impl object的个数就相当于该
cluster的容量。当这样一个active object接收call request的时候,messenger会自
动把request分配给空闲的impl object,直到所有的impl object都变忙了。
于是第一个loop是把requests全发给"predictor",收到相应数量的Future,也就是
IReturn instances。第二个loop... 阅读全帖 |
|
c*******9 发帖数: 6411 | 14 I use the following code to write the xml string in UTF-8, the code does not
work in
Japanese SIJIS environment. The code that processed xml in UTF-8 format can
not
process the xml string written out this way.
DOMImplementation* impl =
DOMImplementationRegistry::getDOMImplementation(X(""));
m_theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();
string namespaceURI = "http://www.w3.org/2001/XMLSchema-instance";
string rootElement = "DMPrintRoot";
m_doc = impl->createDocume |
|
o**2 发帖数: 168 | 15
这里是完整的可运行的代码。需要的FMP库在: http://search.maven.org/#browse|1968728870
import com.fastmessenger.impl.GuiMessenger;
public class Main {
public static void main (String[] args) {
GuiMessenger messenger = new GuiMessenger ();
FMPTest win = new FMPTest (messenger);
FileAnalyzer analyzer = new FileAnalyzer (messenger);
messenger.registerSwingReceiver (win, "main.frame", "setStatus");
messenger.registerReceiver (analyzer, "file.analyzer", "countWord");
w... 阅读全帖 |
|
o**2 发帖数: 168 | 16 有本质的不同,体现在FMP比task更进了一步。首先,FMP把这些task集中起来放在一个
active object里了;然后再对这个active object抽象了一次,把它完全变成了一个
object的spec;最后,由其它一个(甚至多个)solid的impl object来实现这个spec。
(see figure below)
FMP里的messenger object是整个体系的关键,不同的messenger implementations只要
能维持active object的spec和语义一致不变,那user programs就完全不受影响了。于
是messenger object在内部怎么搞都可以了,比如:可以用一个impl object;可以用
多个impl objects来支持一个active object;甚至可以用非object,比如C,来实现这
个active object;再比如可以自由安排内部的thread等。
FMP对message的data type没有定义,完全留给实现者根据具体的语言决定其特定的风
格。这也导致了FMP不能实现在编译时做静态类型检... 阅读全帖 |
|
z*******3 发帖数: 13709 | 17
beans没有标准,所有的java文件都是beans
只不过换个名字而已,所以spring说pojo
plain ordinary java object
意思就是你不需要遵循标准,没有标准,没有接口没有抽象类需要你去impl
随便拿一个java文件,这就是bean
spring通过xml和annotation来管理这些bean
所以你原来java怎么写,以后还怎么写,只需要在xml和annotation上告诉spring就好了
所以spring是一种非侵入式的框架,不像ejb早期,需要你impl接口或者抽象类
这个侵入就比较强
serialisable是一个interface,marker interface啊
如果你不垮虚拟机调用的话,你不需要impl这个
如果你垮虚拟机调用bean的话,才需要额外把这个接口写上去
做个标注,这样虚拟机就知道你需要序列化这个bean |
|
z*******3 发帖数: 13709 | 18 这种不加任何限制的java文件就是pojo
而大多数framework, server都会添加某些限制
比如ejb,早期就需要impl很多接口,还不只一个,四五个
vert.x目前做到的也需要你impl AbstractVerticle这个抽象类
servlet也需要impl一个抽象类
否则beans就不是verticle,不是servlet
但是spring只需要在xml中标记一下,就可以了
这样你源代码基本上不动
测试时候就很方便,没有context,你不需要去设置什么东西就可以开始测试了
测试ejb烦死,需要app server,测试servlet也需要有tomcat之类的
test case通过之后,你就可以直接放入spring中去
改一下配置xml文件就好了,就不需要重新编译 |
|
|
m**********s 发帖数: 518 | 20 Your code works with Api, not care about actual impl
Your code used dependency injection
Then you can inject a mock impl of Api to your code.
The mock can be configured with any expected behavior.
Now you can do mock test to verify your business logic that is expressed by
your code. |
|
s******n 发帖数: 876 | 21 Digging down, this impl involves at least 4 volatile reads in the fastest
case. Per java memory model, a thread is not guaranteed to see updates from
other threads *unless* this thread has some memory barriers like
synchronized, volatile(and others. see
http://java.sun.com/javase/6/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility
)
That is why any trick trying to avoid them is doomed to be theoretically incorrect.
An easier to understand impl is to have a separate map storing |
|
m******t 发帖数: 2416 | 22 How is this different from what the Template pattern does in a less,
err, unorthodox way? :-)
I.e.:
class A {
protected void incLineNumber() {
// default impl.
// If a subclass must provide an implementation but A cannot be
// made abstract, throw an exception here.
}
}
class B extends A {
@Override
protected void incLineNumber() {
// B's impl
}
} |
|
|
z****e 发帖数: 54598 | 24 jboss developer studio感觉不太好用,私货太多了
用eclipse,然后下jboss的plugin就好了
或者idea,下jboss的plugin
jboss是历来实现jee标准最快的一个
不管是jee7还是jee6,jee5什么也都很快搞定
倒是websphere&weblogic有些慢,当然最快的是样板glassfish
不过glassfish除了当样板用以外,没有人真的用
spring不是标准的jee,对jee标准有很深的影响
但是spring本身各种接口annotation什么,都跟标准化的jee不一样
jboss是标准化了jee impl,spring不是,spring更像是一个简化的jee impl
jboss应该没有什么特殊的类库,绝大部分都是jee标准
spring大部分都是非标准的接口什么
jee分成两块,一块是web,web server是jee的子集合
另外一块是app,两块凑一起叫做full,所以你看官网上给这些产品颁证书
分成full和web,后者是前者的子集,tomcat只实现了web
jboss实现了both,weblogic&webs... 阅读全帖 |
|
c*******9 发帖数: 6411 | 25 I have the following existing structure:
in a header file header.h
struct test
{
test();
string a;
...
std::map b;
...
}
the existing code impl.cxx use this structure and work ok, now I modify
the structure as following in the header.h
struct test
{
test();
string a;
string a2;
...
std::map b;
...
}
and it crash now in impl.cxx in the existing code:
test test1;
..
test1.a2 = d; (crash here)
...
EXCEPTION_ACCES... 阅读全帖 |
|
o**2 发帖数: 168 | 26 在执行阶段,我们来比较task的重用性。一个task object(不是class)如果不需要输
入,还是有可能可以被重用的。但是重用同一个task object的话,那这个task object
的内部logic就被暴露在多线程的并发环境里了。
而active object有headcount的概念,一个headcount就是一个individual worker,于
是它的implementation object被保证了运行在单线程环境里。一个active object可以
是一个group of individual workers,每个worker有其自己的impl object,所以对
impl object来说,总是运行在单线程环境里。
Example 3 里的Calculator就是一个implementation object。
在执行阶段,FMP胜。 |
|
z****e 发帖数: 54598 | 27 公司evil是天性
从来没有人指望oracle不evil
倒是有很多人认为google不evil,这个是愚蠢到家的想法
其次呢,google的android已经胜诉
当初google就押宝地笃定,只要android不用java这个名字
就不会输,而法官支持了google这个观点
案例法,以后所有的案例,都必须参考这个案例
所以在你我有生之年,这个局面都不会更改
只要你愿意,你也可以参考java的api自己发明一个语言
你愿意起什么名字都可以,oracle肯定不敢起诉你
没用了
最后,java其实很重要的推动力来自ibm
撕破脸对谁都没有好处,所以jcp其实是一个议会
没有ibm的同意,大部分java的features压根下不去
其实ibm才是真正的jcp leader,这个只要不是对政治太无知
基本上都能看明白
说mysql,mysql一开始就是一家公司在推动
开源只是表象,其本质是一个私有财产
缺乏jcp一样的机构来管理,所以一旦这家公司挂了
mysql也就挂了,但是java的东家sun早挂了
java怎么还不挂呢?
另外,java本身有很多impl,其中就包括ibm和azul这两家... 阅读全帖 |
|
z****e 发帖数: 54598 | 28 拿di做例子
spring比较早做到了di
但是后来jee标准也要求了di
那么所有jee impl的server全部都有了di
那如果手头上拿到的是jboss的话
怎么di?一样的,跟spring一样
写一个beans.xml,放到classpath下面去
让jboss在启动时候能够找到这个xml,然后就能用了
跟spring的di一样用,区别就是语法上的区别
spring以前用@Autowired,其他di用@Inject
后来spring也支持了@Inject,所以通用了
这样就可以把在spring上的经验就可以移植到
jboss, weblogic, websphere……上去用
java所有的framework的理论都是通用的
aop也是一样,jboss也实现了aop,用法跟spring类似
aspect j是aop的先行者,所以aspect j的一些语法
会比一般的aop impl比如spring aop要复杂一点
但是基本上aspect, pointcut这些概念都是共通的,所以只要留意一下语法差异
以前的经验就能直接搬过来用,所以最后剩下的其实就是理论
具体的实践反而显... 阅读全帖 |
|
z****e 发帖数: 54598 | 29 专业一点就是paradigm了
java就是最接近纯粹oop的impl语言
其他语言有各自的定位
比如haskell是fp之类的等等
那从一个人使用语言的角度出发
越纯粹的paradigm越好
paradigm如果混用,哪怕只有两个
都会造成非常可怕的后果
就是各自表述,互相之间会冲突
例子?
c++和scala都是如此
c++是procedural programming(pp)和oop还有其他p的混杂
c++自己说自己是oop,其实扯淡,无数的人写成了pp
scala则是oop和fp的混杂
fp本身的历史很不堪,就跟小菊花说的那样
fp在oop以前造成了灾难性的后果
所以才有了oop的推广,最初几次oop的尝试都取得了一定的进展并发展到现在
你今天学的四人帮的最常见的design pattern那本书
里面就用smalltalk, c++和java做例子
smalltalk就是oop最初的impl
所以
第一,多个paradigm混杂所带来的后果是灾难性的
其次,某些paradigm本身就很不堪
比如fp
所以oop至少可以说是目前为止,少数得到大多数人接受的paradigm
所以... 阅读全帖 |
|
f*******t 发帖数: 7549 | 30 可以通过这种方式实现default implementation吧:
type If interface {
func Foo()
}
func DefaultFoo() {
}
type Impl struct {
}
func (i *Impl) Foo() {
DefaultFoo()
}
go的理念是尽量避免语法糖,能用一种办法替代某个语法feature就绝不加第二种可能
。这是它区别于其它语言的特色,我觉得挺好的。 |
|
z****e 发帖数: 54598 | 31 可以预见的是,随着接口的定义成型,这个接口的定义会越来越复杂
因为现实的复杂度是比较高的,导致很难用一些简单的接口来搞定所有问题
所以不停滴加接口,加各种函数定义,最后所有人都在这堆规则中游泳
如果这些规则是公开的标准,还凑合,如果是scope=company
下面的人很快就会造反,跳槽的会变多,因为这样等于把自身技术生命绑定到公司这艘
船上
都不是傻子,谁都会自己的前途着想,做螺丝钉没有太多人愿意
interface/protocol这些东西并不是特别好用
举个最简单的例子
比如你写了一个module,或者叫verticle/actor in vert.x/akka
是一个组件,你要plugin到这个系统中去
那么比较愚蠢的方式就是找个脚本
用container.deploy("module name");
同时当然你也需要定义好interface/protocol,让别人去impl这些interface
这种方式部署,因为这种方式要重新编译,很麻烦,不灵活
比较聪明的方式是找个config,写成
或者json
module:... 阅读全帖 |
|
z****e 发帖数: 54598 | 32 all u need is rxjava
then u can do sth. like .map(d -> d*d)
and forEach(v->{blablabla});
this is just a way to pass in function as a parameter
how stupid u r to think this is impossible for java
u can even impl. this by urself rather than using rxjava
as long as u have lambda & reflection
besides, for async part, u should know java.nio
which have been impl.ed in 1.4 many years ago
if u wanna a sync way to write async code
u need javaagent and for framework quosar would be the answer |
|
a*f 发帖数: 1790 | 33 来自主题: Programming版 - 发个面试题 是问这个吗?
功能要求用entity diagram画出来
一个基于Spring结构设计的框架:
domain pakage:
customer
order
product
price
domain下面repository interface:
customerRepository
ordersRepository
productsRepository
pricesRepository
repository下面DAO impl repository interface
customerRepositoryImpl
ordersRepositoryImpl
productsRepositoryImpl
pricesRepositoryImpl
service package interface:
customerService
orderService
productService
priceService
service package下面 impl service package interface
customerServiceImpl
orderServiceImpl
produ... 阅读全帖 |
|
发帖数: 1 | 34 在runtime/proc.go裡面有很多lock(&sched.lock),
例如把goroutine放到global runq裡面就需要lock
func goschedImpl(gp *g) {
status := readgstatus(gp)
if status&^_Gscan != _Grunning {
dumpgstatus(gp)
throw("bad g status")
}
casgstatus(gp, _Grunning, _Grunnable)
dropg()
lock(&sched.lock)
globrunqput(gp)
unlock(&sched.lock)
schedule()
}
sched是runtime2.go裡面的一個全局變量
var (
allglen uintptr
allm *m
... 阅读全帖 |
|
发帖数: 1 | 35 在runtime/proc.go裡面有很多lock(&sched.lock),
例如把goroutine放到global runq裡面就需要lock
func goschedImpl(gp *g) {
status := readgstatus(gp)
if status&^_Gscan != _Grunning {
dumpgstatus(gp)
throw("bad g status")
}
casgstatus(gp, _Grunning, _Grunnable)
dropg()
lock(&sched.lock)
globrunqput(gp)
unlock(&sched.lock)
schedule()
}
sched是runtime2.go裡面的一個全局變量
var (
allglen uintptr
allm *m
... 阅读全帖 |
|
L*******t 发帖数: 2385 | 36 第一个问题,一般认为vol surface都是depend on一些state variable的,这些state
variable随时间变化,那么Vol surface就自然随时间变化,Vol(t,T,S,K)如果表示隐
含波动率的话,那么在时刻t,变化T,那么这个变化是非stochastic的,因为你可以用
今天的option data校准出来。可是如果你变动t,那么这个量就是stochastic变化的。
Vol Surface的用途。。好问题,我以前一直热衷于计算而不问用途,但我感觉如果你
有了plain vanilla的impl vol surface,那么可以用这个去搞exotic option,别的用
途希望大牛进来指点一下。
第二个问题不是很懂,Heston的impl vol估计也是BS算出来,的吧。。 |
|
z****e 发帖数: 54598 | 37 靠谱
不过oo跟互联网还不是一个时代,互联网更靠后一些
oop很早就显现出了替代其他各种paradigms的架势
随之而来的是软件工程这个学科的兴起
然后逐步替换并淘汰掉c为代表的硬件/命令式编程
开始剥离出抽象的逻辑代码而非命令代码
最早做出垮平台的是fortran,字节码那些都是fortran先搞出来的
然后oop优化最早是smalltalk,以及后来的strongtalk搞出来的理论
再然后lars bak等人根据strongtalk的经验
address了sun的一个项目组用c++用疯了的问题
这就是oak以及后来的java还有官方jvm hotspot的第一版
然后就是java瞄准了网络时代,sun提出了the network is the computer
java上各种socket等的编程也远比c什么容易很多,封装得更彻底
最早c/c++什么用corba,简直不是人用的
然后java在corba基础之上搞出了rmi
再后来是ejb,ejb就是分布式系统的一个典型应用
然后ejb太过于复杂,加上m$被一脚踢出了java阵营
所以迫不及待需要一个更高level的通信协议,这就... 阅读全帖 |
|
z****e 发帖数: 54598 | 38 靠谱
不过oo跟互联网还不是一个时代,互联网更靠后一些
oop很早就显现出了替代其他各种paradigms的架势
随之而来的是软件工程这个学科的兴起
然后逐步替换并淘汰掉c为代表的硬件/命令式编程
开始剥离出抽象的逻辑代码而非命令代码
最早做出垮平台的是fortran,字节码那些都是fortran先搞出来的
然后oop优化最早是smalltalk,以及后来的strongtalk搞出来的理论
再然后lars bak等人根据strongtalk的经验
address了sun的一个项目组用c++用疯了的问题
这就是oak以及后来的java还有官方jvm hotspot的第一版
然后就是java瞄准了网络时代,sun提出了the network is the computer
java上各种socket等的编程也远比c什么容易很多,封装得更彻底
最早c/c++什么用corba,简直不是人用的
然后java在corba基础之上搞出了rmi
再后来是ejb,ejb就是分布式系统的一个典型应用
然后ejb太过于复杂,加上m$被一脚踢出了java阵营
所以迫不及待需要一个更高level的通信协议,这就... 阅读全帖 |
|
|
z****e 发帖数: 54598 | 40 你可以说计算机语言已死
或者说是一个夕阳产业了
就是人类已经发现了这个领域的最优解
就不再继续折腾了,你只需要学会人类定义好的规则就好了
计算机语言这个领域已经没有什么难题需要人类去解决了
java之前,人们之所以搞计算机语言
是因为觉得机器的对话方式,跟人类对话方式有比较大的差异
所以人类可能看不懂机器在执行什么,比如01001011110101010
给你这么一串,你滴不懂这个是啥意思
但是java之后,基本上人能看懂了
所以满足了这个目的之后,还在折腾计算机语言的
不是脑子有屎就是目光短浅,人家解决过的问题
你解决了干嘛?就犹如数学上的某个猜想,已经得到了证明
你再证明一遍?有用吗?你就算证明出来了,人家多半也会说你是抄的
所以计算机语言这个level,已经没有什么可以继续搞的了
剩下无非继续傻瓜化,做成脚本或者置标语言这些,区别不会太大
所以你应该转移到计算机语言以上的东西上去
比如用java来实现什么,vert.x就是一个最好的前进
vert.x之后肯定还有,但是基础类软件,到vert.x应该是一个终结了
vert.x连并发都搞定了,下面人类应该进入纯粹的数学抽象领域了
进入... 阅读全帖 |
|
z****e 发帖数: 54598 | 41 前几天老大爷也在history和joke出没
不过我相当怀疑老大爷不是一个人
是一种精神,下面有很多个impl |
|
S******4 发帖数: 2865 | 42 Lower tax and lower government spending are universally welcomed, in both
Canada and US.
But Canada is fundamentally different from US in its social views. Canada is
much more liberal and doesn't have the religious crazies and extreme rights
and FOXNews-watching rednecks of US.
Call that the Confederacy legacy... US is still quite socially divided 150
years after civil war, not to mention the racial tension. I feel disgusted
every time some white rednecks chant "take our country back".... Take t... 阅读全帖 |
|
c******n 发帖数: 9 | 43 i'm looking for a roommate to share my 2-room apartment. u r going to take
the small one, sharing a good-sized living room, kitchen and bathroom.
Female professional or student preferred.
Convenient location, quiet, and easy parking all the time, plus imple
furnished, internet available, 450USD (all-inclusive, e.g. utilities and
internet)
for further inquiries, please email to c*********[email protected]
thanks for your interest! |
|
a*****4 发帖数: 986 | 44 Please contact David Levine directly via d**********[email protected] if you
are interested.
Looking for an IT Business Consultant based in Raleigh. I might also have a
position similar to this one in WS.
Here is a detailed description of responsibilities and Skills/Requirements:
Detailed Job Description:
- Institute, optimize and provide ongoing management of the IT Demand,
Resource, and Project Management processes for the IT Services department.
- Lead cross-functional teams to create and imple |
|
w**z 发帖数: 8232 | 45 http://stackoverflow.com/questions/825221/where-can-i-find-the-
It's a math problem more than CS. Well, don't know how far you want to go..
That is the implementation from math lib
public static double sqrt(double a) {
return StrictMath.sqrt(a); // default impl. delegates to StrictMath
// Note that hardware sqrt instructions
// frequently can be directly used by JITs
// and should be much faster than doing
// Math.... 阅读全帖 |
|
S********t 发帖数: 3431 | 46 好吧,那我说清楚些
有个general tree,内部结构就是:
class Tree {
public:
void Walk(Visitor *v) {
// in preorder sequence
v->PreVisit(...);
...
// in postorder sequence
v->PostVisit(...);
...
}
private:
ValueType node_value;
vector children_;
}
class Visitor {
public:
virtual void PreVisit(const ValueType &node_value, bool is_leaf) = 0;
virtual void PostVisit(const ValueType &node_value, bool is_leaf) = 0;
}
Let's say you define your own tree data structure:
struct MyTree ... 阅读全帖 |
|
z****e 发帖数: 54598 | 47 http://stackoverflow.com/questions/70689/efficient-way-to-imple
class Foo {
private static volatile Bar bar = null;
public static Bar getBar() {
if (bar == null) {
synchronized(Foo.class) {
if (bar == null)
bar = new Bar();
}
}
return bar;
}
}
1.5之后加一个volatile关键字,也能解决问题
但是牺牲了效率,因为volatile关键字本身就降低了效率
所以double check的完美其实并不完美,本身也降低了效率
既然降低了效率,那还不如直接消费掉那点内存算了
最bitchy的是enum的解决方式
简单说是把class写成enum
public ... 阅读全帖 |
|
|
|