潍坊正规建设网站,网页搜索快捷方式,如何提高百度搜索排名,免费网站最新域名1、设计模式#xff08;写3种常用的设计模式#xff09;
设计模式是在软件工程中解决常见问题的经验性解决方案。以下是一些常用的设计模式#xff1a; 单例模式#xff08;Singleton#xff09;#xff1a; 意图#xff1a;确保一个类只有一个实例#xff0c;并…1、设计模式写3种常用的设计模式
设计模式是在软件工程中解决常见问题的经验性解决方案。以下是一些常用的设计模式 单例模式Singleton 意图确保一个类只有一个实例并提供一个全局访问点。 应用场当需要控制一个类的实例数量例如管理共享资源时。 工厂模式Factory Method 意图定义一个用于创建对象的接口让子类决定实例化哪一个类。 应用场景当创建对象的过程需要根据不同的情况而变化时例如在不同操作系统上创建不同类型的图形界面。 观察者模式Observer 意图当一个对象的状态发生改变时所有依赖于它的对象都得到通知并自动更新。 应用场景当对象间存在一对多的关系当一个对象改变状态其他对象需要作出响应时例如实现消息通知机制。 策略模式Strategy 意图定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。 应用场景当有多种算法可以实现同一功能客户端需要能够动态选择使用哪种算法时例如实现不同排序算法的切换。 装饰器模式Decorator 意图动态地给一个对象添加一些额外的职责就增加功能来说装饰器模式比生成子类更为灵活。 应用场景当需要在不修改对象的结构的情况下动态地给对象增加一些功能时例如给文本添加不同类型的装饰加粗、斜体等。 这些设计模式是软件设计中经常使用的基础模式它们有助于解决特定问题提高代码的可维护性和扩展性。
2、A有个子类terA类B继承了AB的子类terB继承了A的子类terA写出各类代码含有泛型 3、Java反射写一个类利用反射获取全部public属性和方法 4、三个线程t1 、t2 、t3要求线程12同时执行3在它们执行完成后才能执行 方式2CountDownLatch
5、不使用同步锁synchronized 的情况下防止阻塞同步锁可以实现资源共享有没有更好的实现办法。同步锁的替代?
1使用 java.util.concurrent 包中的并发集合 这些集合类如 ConcurrentHashMap, ConcurrentLinkedQueue 等使用了并发控制机制允许多个线程在没有锁的情况下访问和修改数据。
2使用原子变量 java.util.concurrent.atomic 包提供了一组原子类如 AtomicInteger, AtomicLong, AtomicReference 等它们使用底层的硬件指令来保证操作的原子性从而避免了锁的使用。 AtomicInteger counter new AtomicInteger(0); // 线程1 counter.incrementAndGet(); // 线程2 int value counter.get(); 3使用乐观锁 总的来说乐观锁通过允许多个线程在没有锁的情况下尝试执行操作并在冲突发生时通过重试机制来解决问题从而减少了线程阻塞的可能性。然而如果系统中写操作非常频繁乐观锁可能会导致频繁的重试和性能下降 4使用Java 8引入的StampedLock是一个更灵活的锁支持乐观读、悲观读写和读写锁的转换可以在性能和灵活性之间做出权衡。、 5ReadWriteLock允许多个读取者同时访问共享资源但只允许一个写入者适用于读多写少的场景。
6、Java创建阻塞队列要有添加和删除的方法 7、线程池添加和删除关闭 8、Java中任意一种集合的插入与查询代码 9、Linux常用命令
9.1 查找和删除命令查找一个文件并删除它 9.2 使用java命令合理分配年轻代和老年代防止OOM
java -Xms1g -Xmx1g -XX:NewSize256m -XX:MaxNewSize256m -XX:SurvivorRatio8 -XX:MaxTenuringThreshold15 -XX:UseParallelGC -jar your-application.jar
9.3 deamon守护进程方式启动应用启动java程序配置区分 10、开发中令人深刻的技术问题
要提前准备这个根据自己情况来可以适当吹吹