小编JRS*_*fty的帖子

Java中的`public static main(String [] args)`是否有PHP等价物?

可能重复:
有没有办法在PHP中编程100%面向对象?

我想要完成的事情看起来像这样:

 <?php
      //index.php
      class Site{
           public static function main(){
                // starts all the processing of the site
           }
      }
 ?>
Run Code Online (Sandbox Code Playgroud)

因此,当有人访问该网站时,index.php该网站将启动,而无需在课外进行任何代码.

是的我知道我可以使用__autoload甚至spl_autoload_register处理类的自动加载,但仍然很可能需要在类之外添加.

我怀疑这是可能的,但我不知道为什么这是不可能的.

php oop

13
推荐指数
1
解决办法
2万
查看次数

ConcurrentHashMap崩溃使用JDK 8编译但是以JRE 7为目标的应用程序

我今天遇到了一个非常意想不到的错误,虽然我能够找到一种方法来解决整个问题,但我不确定我是否完全理解它为什么会这样做.

我正在使用的代码最初是用JDK 7环境编写的,当然是针对JRE 7.在代码中我使用了一个ConcurrentHashMap并且需要迭代地图中的键.为此,我使用的map.keySet()是根据JavaDocs应该返回的Set<K>.这很好用,直到我们的构建环境切换到JDK8.

当我们转移到JDK8时,我确保在调用javac时调用1.7的目标/源.当代码在想要遍历地图的键时开始失败时,我感到非常惊讶.没有抛出任何错误,没有异常,线程只是停止了.之后做一些研究,我发现Java8的实施ConcurrentHashMap.keySet()方法返回一个KeySetView<K,V>.

我通过使用开关解决了这一问题map.keySet(),以得到一个Enumeration<K>使用map.keys().

现在我对这个问题的猜测是,虽然项目是针对Java7编译的,因为使用了JDK8,Java8库被包含在内,但为什么在它出现不匹配时它没有抛出错误或异常?

正如这里所要求的是代码片段:

class MapProcessing
{
     private ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<String, Object>();

     public MapProcessing()
     {
           map.put("First",new Object());
           map.put("Second",new Object());
           map.put("Third",new Object());
     } 


     public void processing()
     {
          // when calling this type of loop causes a freeze on our system.
          for(String key : map.keySet())
          {
              System.out.println(key);
          }
      }

     public void working()
     {
         // This is what …
Run Code Online (Sandbox Code Playgroud)

java iteration concurrenthashmap

11
推荐指数
1
解决办法
7026
查看次数

到达EOS后重置Java Socket的InputStream

我正在尝试通过 TCP/IP 套接字连接两个单独的应用程序。在这种情况下,两个应用程序都不作为另一个应用程序的“客户端”运行,将它们描述为两个需要相互通信的独立服务器会更容易。

为了接收数据,我正在使用该InputStream.Read()函数,一旦它收到一个值,-1它就应该停止处理。然而,现在的问题是,如果另一组数据出现,则InputStream已经位于流末尾 ( EOS),因此所有正在发送的新数据都将被丢弃或忽略。我发现解决此问题的唯一方法是,一旦到达流结束,我关闭套接字并重新打开它,我认为这可能可以通过其他方式更好地处理。

如何重置 InputStream 以便为可能出现的下一组数据做好准备?

java sockets inputstream java-io

2
推荐指数
1
解决办法
2879
查看次数

当我创建一个新的Exception时,我必须抛弃它,还是可以将它放在List中?

我有一个项目,我必须解析格式化的ASCII数据.解析器有可能识别格式化中的问题(预期未找到,发现意外数据).通常,如果我发现某些事情失败,我会抛出异常.但是,这一次,我想继续解析过程,并将解析器错误存储在结束类中.我的问题是,是否可以创建一个新的Exception并将其存储在一个List而不是抛出它以免停止处理?

java exception-handling

1
推荐指数
1
解决办法
199
查看次数